You are on page 1of 469

Анатолій МЕЛЬНИК

АРХІТЕКТУРА
КОМП'ЮТЕР)
підручник
з

ЗМІСТ

Передмова 13

РОЗДІЛ 7.
Сучасний комп'ютер. Основні поняття 17
1.1. Історичні аспекти розвитку комп'ютерів 17
1.2. Функції, структура та характеристики комп'ютера 18
1.2.1. Функції та основні функціональні вузли комп'ютера 18
1.2.2. Тенденції зміни основних характеристик апаратних засобів комп'ютера 20
1.2.3. Оцінка продуктивності комп'ютера 23
1.2.3.1. Одиниці оцінки продуктивності 23
1.2.3.2. Тестові програми для оцінки продуктивності 25
1.2.4. Організація зв'язків між функціональними вузлами комп'ютера 26
1.3. Архітектура комп'ютера 28
1.3.1. Поняття архітектури комп'ютера 28
1.3.2. Архітектурні принципи Джона фон Неймана ЗО
1.3.3. Ненейманівські архітектури комп'ютерів 31
1.4. Типи сучасних комп'ютерів 33
1.4.1. Персональні комп'ютери 34
1.4.2. Робочі станції 40
1.4.3. Багатотермінальні системи 41
1.4.4. Сервери 42
1.4.5. Великі універсальні комп'ютерні системи 43
1.4.6. Кластерні комп'ютерні системи 44
1.4.7. Суперкомп'ютери 46
1.4.8. Мікроконтролери 48
1.4.9. Спеціалізовані комп'ютери 49
1.5. Предмет та порядок розгляду матеріалу даної книги 50
1.6. Підсумок розділу 53
1.7. Література для подальшого читання 53
1.8. Література до розділу 1 54
1.9. Питання по розділу 1 54

РОЗДІЛ 2.
Представлення даних у комп'ютері 56
2.1. Позиційні системи числення 56
2.2. Двійкові, вісімкові та шістнадцяткові числа 57
2.3. Переведення чисел із системи числення з основою к у десяткову систему. 59
2.4. Переведення чисел із десяткової системи у систему числення з основою к 59
2.5. Представлення чисел зі знаком 60
2.5.1. Прямий код 61
2.5.2. Обернений код 61
2.5.3. Доповняльний код 62
2.6. Формати даних 63
2.6.1. Способи представлення чисел 63
2.6.2. Числа з фіксованою комою 63
2.6.3. Числа із рухомою комою 65
2.6.4. Стандарт ІЕЕЕ-754 70
2.6.5. Кодування алфавітно-цифрової інформації 72
2.6.5.1. Двійково-кодовані десяткові числа 72
2.6.5.2. Розширений двійково-кодований десятковий код обміну EBCDIC 74
2.6.5.3 Американський стандартний код інформаційного обміну ASCII 75
2.6.5.4. Стандарт кодування символів Unicode 76
2.7. Короткий зміст розділу 77
2.8. Література для подальшого ч и т а н н я 77
2.9. Література до розділу 2 78
2.10. П и т а н н я до розділу 2 78
2.11. Задачі до розділу 2 79

Розділ 3.
Порядок виконання команд і програм в комп'ютері 82
3.1. Кодування та виконання команд в комп'ютері 82
3.1.1. Кодування команди та програми 83
3.1.2. Порядок виконання команд 84
3.1.3. Виконання команд на рівні регістрів процесора 85
3.2. Типи операцій та команд 87
3.2.1. Класифікація команд за типами операцій 87
3.2.2. Команди обробки даних 88
3.2.3. Команди переміщення даних 89
3.2.4. Команди передачі керування 90
3.2.4.1. Команди переходу. 91
3.2.4.2. Команди пропуску. 93
3.2.4.3. Команди звернення до підпрограм 94
3.2.5. Команди введення-виведення 96
3.2.6. Принципи формування системи команд комп'ютера 96
3.2.7. Конвеєрне виконання команд 98
3.3. Формати команд комп'ютера 102
3.3.1. Класифікація архітектури комп'ютера за типом адресованої пам'яті 102
3.3.2. Порівняльний аналіз форматів команд 105
3.4. Способи адресації операндів 107
3.4.1. Безпосередня адресація 108
3.4.2. Пряма адресація 108
3.4.3. Непряма адресація 109
3.4.4. Способи адресації операндів на основі операції зміщення 111
3.4.4.1. Відносна адресація 111
3.4.4.2. Базова адресація Ш
3.4.4.3. Індексна адресація 112
3.4.5. Сторінкова адресація 114
3.4.6. Неявна адресація 114
3.4.7. Стекова адресація 114
3.4.8. Використання стекової адресації 115
3.4.9. Вибір способів адресації операндів 117
3.5. Приклади форматів команд 118
3.5.1. Формати команд комп'ютерної системи I B M 370 119
3.5.2. Формати команд комп'ютера Cyber-70 120
3.5.3. Формати команд сучасного комп'ютера 121
3.6. Вплив технології компілювання на систему команд комп'ютера 122
3.7. Архітектура системи команд комп'ютера 123
3.7.1. Класифікація архітектури комп'ютера за складом системи команд 123
3.7.2. Комп'ютери із складною та з простою системою команд 123
3.7.3. Особливості архітектури комп'ютера з простою системою команд 124
3.7.4. Архітектура комп'ютера з доповненою системою команд 125
3.7.5. Комп'ютери зі спеціалізованою системою команд 126
3.8. Короткий зміст розділу 129
3.9. Література для подальшого читання 129
3.10. Література до розділу 3 130
3.11. Питання до розділу 3 131

Розділ 4.
Процесор універсального комп'ютера 133
4.1. Процесор комп'ютера із складною системою команд 133
4.1.1. Одношинна структура процесора 133
4.1.2. Основні операції процесораа 135
4.1.2.1. Вибірка слова з пам'яті 135
4.1.2.2. Запам'ятовування слова в пам'яті 135
4.1.2.3. Обмін даними між регістрами 135
4.1.2.4. Виконання арифметичних і логічних операцій 136
4.1.3. Багатошинна структура процесора 137
4.1.4. Приклади виконання операцій в процесорі 138
4.1.4.1. Виконання операції додавання двох чисел 138
4.1.4.2. Виконання операції переходу. 139
4.1.5. Особливості побудови процесора комп'ютера із складною системою команд.. 139
4.2. Процесор комп'ютера з простою системою команд 140
4.2.1. Вимоги до процесора комп'ютера з простою системою команд 140
4.2.2. Базові принципи побудови процесора комп'ютера з простою системою
команд 140
4.2.3. Взаємодія процесора з пам'яттю в комп'ютері з простою системою команд... 144
4.2.4. Виконання команд в процесорі комп'ютера з простою системою команд 146
4.2.4.1. Фаза вибирання команди 146
4.2.4.2. Фаза декодування команди 147
4.2.4.3. Фаза виконання та формування ефективної адреси 148
4.2.4.4. Фаза звернення до пам'яті та завершення умовного переходу. 149
4.2.4.5. Фаза зворотного запису. 150
4.2.5. Конвеєрна структура процесора комп'ютера з простою системою команд....151
4.2.5.1. Конвеєрний процесор 151
4.2.5.2. Мікродії ярусів конвеєрного процесора 155
4.3. Суперконвеєрні процесори 157
4.4. Суперскалярні процесори 158
4.5. Процесор векторного комп'ютера 160
4.6. Класифікація архітектури комп'ютера за рівнем суміщення опрацювання
команд та даних 164
4.7. Короткий зміст розділу 164
4.8. Література для подальшого ч и т а н н я 165
4.9. Література до розділу 4 165
4.10. П и т а н н я до розділу 4 165

Розділ 5.
Запобігання конфліктам в конвеєрі команд 767
5.1. Структурні конфлікти 167
5.2. Конфлікти за даними 170
5.2.1. Типи конфліктів за даними 170
5.2.2. Методи зменшення впливу конфліктів за даними на роботу конвеєра команд.. 171
5.2.3. Призупинення виконання команди 172
5.2.4. Випереджувальне пересилання 172
5.2.5. Статична диспетчеризація послідовності команд у програмі під час компіляції.. 174
5.2.6. Динамічна диспетчеризація послідовності команд у програмі під час
компіляції 176
5.2.7. Перейменування регістрів 177
5.3. Конфлікти керування 177
5.3.1. Типи конфліктів керування 177
5.3.2. Зниження втрат на вибірку команди, до якої здійснюється перехід 179
5.3.3. Зниження втрат на виконання команд умовного переходу. 181
5.3.3.1. Введення буфера попередньої вибірки 181
5.3.3.2. Дублювання початкових ярусів конвеєра 182
5.3.3.3. Затримка переходу. 183
5.3.3.4. Статичне передбачення переходу. 183
5.3.3.5. Динамічне передбачення переходу. 185
5.4. Покращена структура комп'ютера із спрощеною системою команд 189
5.5. Особливості запобігання конфліктам в суперскалярних процесорах 190
5.6. Комп'ютери з довгим форматом команди 192
5.7. Комп'ютери з комбінованою архітектурою 196
5.8. Комп'ютери з я в н и м паралелізмом виконання команд 198
5.9. Короткий зміст розділу. 200
5.10. Література для подальшого читання 201
5.11. Література до розділу 5 201
5.12. П и т а н н я до розділу 5 203

Розділ 6 .
Алгоритми виконання операцій обробки даних 204
6.1. Логічні операції 204
6.1.1. Операція заперечення 206
6Л.2. Логічне 1 206
6.1.3. Логічне АБО 206
6.1.4. Виключне АБО 207
6.2. Операції зсуву. 207
6.2.1. Логічні зсуви 207
6.2.2. Арифметичні зсуви 208
6.2.3. Циклічні зсуви 208
6.3. Операції відношення 209
6.3.1. Порівняння двійкових кодів на збіжність 209
6.3.2. Визначення старшинства двійкових кодів 209
6.4. Арифметичні операції 210
6.4.1. Додавання двійкових чисел без знаків 210
6.4.2. Додавання двійкових чисел із знаками 212
6.4.3. Віднімання двійкових чисел 213
6.4.4. Множення двійкових чисел 214
6.4.4.1. Множення цілих двійкових чисел без знаків 215
6.4.4.2. Багатомісна операція додавання часткових добутків 216
6.4.4.3. Множення двійкових чисел із знаками 220
6.4.4.4. Прискорене множення двійкових чисел за методом Бута 221
6.4.5. Ділення двійкових чисел 222
6.4.6. Арифметичні операції над двійковими числами у форматі
з рухомою комою 224
6.5. Операції обчислення елементарних функцій 226
6.5.1. Розклад функції в ряд та використання ітеративних обчислень 226
6.5.2. Обчислення елементарних функцій методом "цифра за цифрою". 226
6.5.3. Табличний метод обчислення елементарних функцій 228
6.5.4. Таблично-алгоритмічний метод обчислення елементарних функцій 228
6.6. Операції перетворення даних 229
6.6.1. Перетворення даних із формату з фіксованою у формат з рухомою комою
та навпаки 229
6.6.2. Перетворення даних з двійково-десяткового коду в двійковий та навпаки...231
6.7. Операції реорганізації масивів і визначення їх параметрів 231
6.8. Операції обробки символів та рядків символів 232
6.9. Короткий зміст розділу. 236
6.10. Література для подальшого читання 236
6.11. Література до розділу 6 236
6.12. Питання до розділу 6 237

Розділ 7.
Арифметико-логічний пристрій 239
7.1. Функції арифметико-логічного пристрою 239
7.2. Способи обробки даних в арифметико-логічному пристрої 240
7.3. Елементарні операції арифметико-логічного пристрою 241
7.4. Складні операції арифметико-логічного пристрою 243
7.5. Використання графа алгоритму при побудові арифметико-логічного
пристрою 244
7.6. Виконання складних операцій в арифметико-логічному пристрої 245
7.7. Структура арифметико-логічного пристрою 246
7.8. Типи операційних пристроїв 249
7.9. Табличний операційний пристрій 250
7.10. Багатотактовий операційний пристрій 252
7.11. Однотактовий операційний пристрій 254
7.12. Конвеєрний операційний пристрій 255
7.13. Алгоритмічні операційні пристрої 258
7.13.1. Пристрої додавання і віднімання двійкових чисел з фіксованою комою 258
7.13.2. Пристрої множення двійкових чисел з фіксованою комою 261
7.13.2.1. Багатотактовий пристрій множення двійкових чисел з молодших
розрядів множника при нерухомому множеному з зсувом суми
часткових добутків 261
7.13.2.2. Багатотактовий пристрій множення двійкових чисел з молодших
розрядів при нерухомій сумі часткових добутків з зсувом
множеного вліво 263
7.13.2.3. Багатотактовий пристрій множення двійкових чисел з старших
розрядів при нерухомій сумі часткових добутків з зсувом
множеного вправо 264
7.13.2.4. Багатотактовий пристрій множення двійкових чисел з старших
розрядів при нерухомому множеному з зсувом суми часткових
добутків вліво 266
7.13.2.5. Багатотактовий пристрій прискореного множення 267
7.13.2.6. Однотактові пристрої множення двійкових чисел з фіксованою
комою 268
7.13.2.7. Конвеєрні пристрої множення двійкових чисел
з фіксованою комою 269
7.13.3. Пристрої ділення двійкових чисел з фіксованою комою 270
7.13.3.1. Багатотактові пристрої ділення двійкових чисел з фіксованою
комою 270
7.13.3.2. Однотактові та конвеєрні пристрої ділення двійкових чисел
з фіксованою комою 272
7.13.4. Пристрої обчислення елементарних функцій методом "цифра за цифрою". 273
7.13.4.1. Багатотактовий пристрій обчислення елементарних функцій методом
"цифра за цифрою". 273
7.13.4.2. Однотактовий та конвеєрний операційні пристрої обчислення
елементарних функцій методом «цифра за цифрою» 274
7.13.5. Пристрої для виконання арифметичних операцій над числами
з рухомою комою 275
7.13.5.1. Пристрої додавання і віднімання чисел з рухомою комою 275
7.13.5.2. Пристрої множення та ділення чисел з рухомою комою 276
7.14. Таблично-алгоритмічні операційні пристрої 277
7.15. Короткий зміст розділу 280
7.16. Література для подальшого ч и т а н н я 280
7.17. Література до розділу 7 280
7.18. П и т а н н я до розділу 7 281
Розділ 8.
Пристрій керування 283
8.1. Функції та методи побудови пристрою керування 283
8.2. Пристрій керування з жорсткою логікою 284
8.2.1. Структура пристрою керування з жорсткою логікою 284
8.2.2. Методи проектування пристрою керування з жорсткою логікою 285
8.2.3. Пристрій керування на основі таблиць станів 285
8.2.3.1. Абстрактні автомати 285
8.2.3.2. Мови опису функціонування автоматів 285
8.2.3.3. Структурний синтез цифрових автоматів 291
8.2.4. Пристрій керування на основі синхронних елементів часової затримки 294
8.2.5. Пристрій керування на основі лічильників 295
8.3. Пристрій мікропрограмного керування 297
8.3.1. Організація роботи пристрою мікропрограмного керування 297
8.3.2. Організація мікропрограм в пам'яті мікрокоманд 300
8.3.3. Горизонтальне та вертикальне мікропрограмування 301
8.4. Порівняння пристроїв керування з жорсткою логікою та пристроїв
мікропрограмного керування 302
8.5. Короткий зміст розділу. 303
8.6. Література для подальшого читання 304
8.7. Література до розділу 8 304
8.8. Питання до розділу 8 305

Розділ 9.
Багаторівнева пам'ять комп'ютера 307
9.1. Типи та характеристики пам'яті комп'ютера 308
9.1.1. Багаторівнева структура пам'яті комп'ютера 308
9.1.2. Типи пам'яті 308
9.1.3. Основні характеристики пам'яті 313
9.2 Регістровий файл процесора 315
9.2.1. Типи регістрових файлів 315
9.2.2. Інтегрований багатопортовий регістровий файл 316
9.2.3. Розподілений регістровий файл 316
9.2.3.1. Кластерний розподілений регістровий файл 317
9.2.3.2. Розподілений регістровий файл з керованою комутацією 318
9.2.3.3. Розподілений регістровий файл з віконною організацією 318
9.2.4. Ієрархічний регістровий файл 319
9.2.5. Динамічна та статична організація збереження даних в регістрових
файлах 320
9.3. Пам'ять з асоціативним доступом 321
9.3.1. Організація та типи пам'яті з асоціативним доступом 321
9.3.2. Пам'ять з повним паралельним асоціативним доступом 325
9.3.3. Пам'ять з неповним паралельним асоціативним доступом 326
9.3.4. Пам'ять з послідовним асоціативним доступом 326
9.3.5. Пам'ять з частково асоціативним доступом 327
9.4. Основна пам'ять 328
9.4.1. Структура основної пам'яті 328
9.4.2. Нарощування розрядності основної пам'яті 329
9.4.3. Нарощування ємності основної пам'яті 329
9.4.4. Розшарування пам'яті 330
9.5. Оперативний запам'ятовуючий пристрій 331
9.6. Постійний запам'ятовуючий пристрій 334
9.6.1. Організація роботи постійного запам'ятовуючого пристрою 334
9.6.2. Запрограмований при виготовленні постійний запам'ятовуючий пристрій...335
9.6.3. Одноразово запрограмований після виготовлення постійний
запам'ятовуючий пристрій 336
9.6.4. Багаторазово програмовний постійний запам'ятовуючий пристрій 337
9.7. Зовнішня пам'ять 339
9.7.1. Магнітні диски 339
9.7.2. Масиви магнітних дисків з надлишковістю 341
9.7.2.1. Базовий тип дискових масивів RAID 0 343
9.7.2.2. Базовий тип дискових масивів RAID 1 343
9.7.2.3. Базовий тип дискових масивів RAID 2 344
9.7.2.4. Базовий тип дискових масивів RAID 3 344
9.7.2.5. Базовий тип дискових масивів RAID 4 345
9.7.2.6. Базовий тип дискових масивів RAID 5 346
9.7.2.7. Тип дискових масивів RAID 6 346
9.7.2.8. Тип дискових масивів RAID 7 347
9.7.2.9. Тип дискових масивів RAID 10 347
9.7.3. Оптична пам'ять 348
9.7.3.1. Постійна пам'ять на основі компакт дисків 349
9.7.3.2. Оптичні диски із стиранням 350
9.7.4. Магнітні стрічки 351
9.8. Короткий зміст розділу 352
9.9. Література для подальшого читання 353
9.10. Література до розділу 9 353
9.11. П и т а н н я до розділу 9 355

Розділ 10.
Організація пам'яті 357
10.1. Ієрархічна організація пам'яті комп'ютера 357
10.1.1. Різниця між продуктивністю процесора та пам'яті 357
10.1.2. Властивість локальності за зверненням до пам'яті 359
10.1.3. Принцип ієрархічної організації пам'яті 360
10.1.4. Характеристики ефективності ієрархічної організації пам'яті 361
10.1.5. Ієрархічна пам'ять сучасного комп'ютера 362
10.2. Організація обміну інформацією між процесором і основною пам'яттю
через кеш пам'ять 363
10.2.1. Кеш пам'ять в складі комп'ютера 363
10.2.2. Порядок взаємодії процесора і основної пам'яті через кеш пам'ять 364
10.2.3. Забезпечення ідентичності вмісту блоків кеш пам'яті і основної пам'яті....365
10.2.4. Функція відображення 366
10.2.4.1. Типи функцій відображення 366
10.2.4.2. Повністю асоціативне відображення 367
10.2.4.3. Пряме відображення 369
10.2.4.4. Частково-асоціативне відображення 371
10.2.5. Порядок заміщення блоків в кеш пам'яті з асоціативним відображенням 373
10.2.6. Підвищення ефективності кеш пам'яті 374
10.3. Організація обміну інформацією між основною та зовнішньою пам'яттю 376
10.3.1. Статичний та динамічний розподіл пам'яті 376
10.3.2. Розподіл основної пам'яті за допомогою базових адрес 377
10.3.3. Віртуальна пам'ять 379
10.3.4. Сторінкова організація пам'яті 380
10.3.4.1. Основні правила сторінкової організації пам'яті 380
10.3.4.2. Реалізація сторінкової організації пам'яті 381
10.3.4.4. Апаратна реалізація сторінкової таблиці 384
10.3.5. Сегментна організація віртуальної пам'яті 388
10.4. Захист пам'яті від несанкціонованих звернень 391
10.4.1. Задачі захисту пам'яті 391
10.4.2. Захист пам'яті за допомогою регістра захисту. 391
10.4.3. Захист пам'яті за граничними адресами 392
10.4.4. Захист пам'яті за значеннями ключів 392
10.4.5. Кільцева схема захисту пам'яті 393
10.5. Короткий зміст розділу 394
10.6. Література для подальшого читання 395
10.7. Література до розділу 10 395
10.8. Питання до розділу 10 397

Розділ 7 7.
Організація введення-виведення 399
11.1. Під'єднання зовнішніх пристроїв до комп'ютера 399
11.2. Розпізнавання пристроїв введення-виведення 401
11.3. Методи керування введенням-виведенням 403
11.4. Програмно-кероване введення-виведення 403
11.5. Система переривання програм та організація введення-виведення
за перериваннями 405
11.5.1. Функції системи переривання програм 405
11.5.2. Характеристики системи переривання програм 406
11.5.3. Вхід в переривальну програму. 407
11.5.4. Пріоритетне обслуговування переривання 409
11.5.5. Організація повернення до перериваної програми 410
11.5.6. Введення-виведення за перериваннями 411
11.6. Прямий доступ до пам'яті 412
11.7. Введення-виведення під керуванням периферійних процесорів 413
11.7.1. Принципи введення-виведення під керуванням периферійних
процесорів 413
11.7.2. Причини застосування каналів введення-виведення 415
11.7.3. Функції каналів введення-виведення 416
11.7.4. Керуюча інформація каналу введення-виведення 417
12

11.7.5. Мультиплексний та селекторний канали введення-виведення 417


11.8. Короткий зміст розділу. 419
11.9. Література для подальшого ч и т а н н я 420
11.10. Література до розділу 11 420
11.11. П и т а н н я до розділу 11 420

Розділ 12.
Паралельні комп'ютерні системи 422
12.1. Використання принципів паралельної обробки інформації в архітектурі
комп' ютера 422
12.2. Вибір кількості процесорів в багатопроцесорній системі 426
12.3. Багатопотокова обробка інформації 428
12.4. Класифікація паралельних комп'ютерних систем 432
12.4.1. Класифікація Шора 432
12.4.2. Класифікація Фліна 435
12.5. Типи архітектур систем ОКМД 437
12.6. Типи архітектур систем МКМД 439
12.7. Організація комп'ютерних систем із спільною пам'яттю 439
12.7.1. Типи комп'ютерних систем із спільною пам'яттю 439
12.7.2. Системи з однорідним доступом до пам'яті 441
12.7.3. Системи з неоднорідним доступом до пам'яті 442
12.7.4. Системи лише з кеш пам'яттю 443
12.8. Організація комп'ютерних систем із розподіленою пам'яттю 444
12.9. Комунікаційні мережі багатопроцесорних систем 445
12.9.1. Типи комунікаційних мереж 445
12.9.2. Основні характеристики комунікаційних мереж багатопроцесорних
систем 448
12.9.3. Статичні топології комунікаційних мереж багатопроцесорних систем 449
12.9.4. Шинні динамічні комунікаційні мережі багатопроцесорних систем 453
12.9.5. Комутуючі динамічні комунікаційні мережі багатопроцесорних систем 456
12.9.5.1. Типи комутуючих динамічних комунікаційних мереж 456
12.9.5.2. Координатна мережа 457
12.9.5.3. Матрична одноярусна комутуюча мережа 458
12.9.5.4. Багатоярусні блокуючі комутуючі мережі 458
12.9.5.5. Багатоярусні неблокуючі комутуючі мережі з реконфігурацією 460
12.9.5.6. Багатоярусні неблокуючі комутуючі мережі 463
12.10. Короткий зміст розділу. 464
12.11. Література для подальшого ч и т а н н я 465
12.12. Література до розділу 12 465
12.13. П и т а н н я до розділу 12 467
Цередмо&си
[ШІ[ШІ|ВІ|еІіві!ВІ|вІ|в)|ві[тІ|вІ|ві|вІ|ві|шІ|вІівШів)[шШ

Комп'ютерні технології все стрімкішими темпами входять в усі сфери життя


суспільства, що викликає потребу підготовки фахівців за відповідними напрямами,
в першу чергу за напрямами "Комп'ютерна інженерія", "Комп'ютерні науки", "Про­
грамна інженерія", "Прикладна математика", "Захист інформації в комп'ютерних
системах та мережах", "Комп'ютеризовані системи, автоматика і управління".
Однією з базових дисциплін підготовки бакалаврів за названими напрямами є дис­
ципліна "Архітектура комп'ютера". Цей підручник повною мірою відповідає змісту
міністерських програм за вищеназваними напрямами.
Запропонований підручник орієнтований на студентів вищих навчальних закла­
дів, викладачів та аспірантів комп'ютерних напрямів підготовки та покликаний
прищепити талановитій молоді розуміння основних принципів побудови та органі­
зації сучасних комп'ютерів. Він також може бути корисним для фахівців в області
комп'ютерних та інформаційних технологій.
Підручних охоплює весь комплекс питань, пов'язаних з теорією, принципами та
методами побудови й організації функціонування комп'ютерів та складається з два­
надцяти розділів.
В першому розділі розглянуто історичні аспекти розвитку комп'ютерів, подано
основні поняття, функції та основні функціональні вузли комп'ютера, їх взаємозв'я­
зок, а також загальну організацію роботи комп'ютера. Розглянуто характерні риси
та сфери застосування різних типів комп'ютерів. Обгрунтовано місце предмета да­
ної книги серед суміжних дисциплін та порядок його розгляду.
В наступному, другому, розділі розглянуто основні елементи архітектури
комп'ютера. Показано як кодуються та виконуються команди в комп'ютері. Про­
ведена класифікація команд відповідно до ініційованих ними типів операцій та де­
тально розглянуті команди обробки даних, переміщення даних, передачі керування,
введення-виведення. Введено поняття конвеєрного виконання команд - одного з ви­
дів паралелізму на рівні команди. Розглянуто три типи архітектур комп'ютера за
типом адресованої пам'яті: стекова, акумуляторна, та на основі регістрів загально­
го користування, їх переваги і недоліки. Наведено різні способи адресації, включаючи
безпосередню, пряму, непряму, базову, індексну, сторінкову і стекову. Летально роз­
глянуто архітектури комп'ютерів з складною, з простою, з доповненою та з орієн­
тованою системою команд.
В третьому розділі розкрито основні питання представлення даних в комп'юте­
рі, які є важливими для розуміння матеріалу наступних розділів. Наведено правила
74

подання даних в позиційних системах числення та переведення чисел із однієї систе­


ми числення до іншої. Описано представлення чисел зі знаком в прямому, оберненому
та доповняльному кодах а також формати даних з фіксованою та з рухомою комою,
включаючи стандарт ІЕЕЕ-754. Розглянуто питання кодування алфавітно-цифро­
вої інформації кодами ASCII, EBCDIC та Unicode.
В четвертому розділі розкрито основні алгоритми виконання в комп'ютері опе­
рацій обробки даних: логічних, зсуву, відношення, арифметичних, обчислення еле­
ментарних функцій, перетворення даних (перетворення із формату з фіксованою
в формат з рухомою комою і навпаки, перетворення з двійково-десяткового коду в
двійковий і навпаки), реорганізації масивів і визначення їх параметрів (сортування,
пошук максимуму або мінімуму, вибір заданого масиву, зсув елементів масиву, стиск
масиву), обробки символів та стрічок символів (пошук символу, зсув, заміна символів
в стрічці, пакування стрічок символів, порівняння стрічок символів).
В п'ятому розділі розглянуто принципи побудови арифметико-логічного при­
строю (АЛП) сучасних комп'ютерів, який є одним з основних вузлів процесора. Роз­
крито структури АЛП для виконання елементарних та складних операцій. Опи­
сано багатоблокові АЛП на основі табличних, однотактових, багатотактових та
конвеєрних операційних пристроїв для виконання операцій додавання, віднімання,
множення, ділення та обчислення елементарних функцій над двійковими числами в
форматах з фіксованою та рухомою комою.
В шостому розділі розглянуто структуру та організацію роботи пристрою ке­
рування з жорсткою логікою, а також методи його проектування: на основі таблиць
станів, на основі елементів часової затримки та на основі лічильників. Описано ро­
боту та основні принципи, покладені в основу побудови пристрою мікропрограмного
керування. Розглянуто питання розміщення мікрокоманд в пам'яті, формат мікро-
команди і способи його оптимізації.
В сьомому розділі описано місце процесора в комп'ютері, його функції та склад,
розглянуто виконання основних операцій процесора. Виділено базові принципи по­
будови процесора комп'ютера з складною та з простою системою команд. Описано
конвеєрну структуру процесора з простою системою команд та принципи побудови
суперконвеєрних, суперскалярних та векторних процесорів.
У восьмому розділі розглянуто конфлікти в конвеєрі команд та методи їх усунен­
ня. Проведено аналіз методів запобігання появі трьох класів конфліктів: структур­
них, за даними та керування. Наведено приклади структур конвеєрних процесорів,
в тому числі суперскалярних, в яких зменшено імовірність виникнення конфліктів.
Розглянуто архітектури комп'ютерів, в яких відсутні конфлікти команд, а саме
комп'ютерів з довгим форматом команди.
В дев'ятому розділі розглянуто структуру та основні характеристики пам'яті
комп'ютера. Проаналізовано можливі варіанти організації регістрових файлів про­
цесорів та пам'яті з асоціативним доступом. Описано будову запам'ятовуючих при­
строїв, які може містити основна пам'ять, способи прискорення доступу до інфор-
15

мації, нарощуваннярозрядності та ємності основної пам'яті. Подано типи сучасних


дискових систем та обгрунтування використання масивів магнітних дисків з над-
лишковістю, а також робота шести базових типів дискових масивів RAID: RAID О,
RAID I, ... , RAID 5 та дискових масивів, створених на їх основі. Описано роботу
оптичної пам'яті та пам'яті на магнітних стрічках.
Виходячи з принципу ієрархічної організації пам'яті, в десятому розділі описано
організацію взаємодії між рівнями ієрархічної пам'яті. Зокрема, наведено принци­
пи обміну інформацією між рівнями ієрархічної пам'яті, характеристики, які ви­
користовуються для оцінки ефективності ієрархічної пам'яті, пояснено місце кеш
пам'яті в складі комп'ютера, призначення і логіку роботи кеш пам'яті, описано
переваги поділу кеш пам'яті першого рівня на кеш пам'ять даних та кеш пам'ять
команд. Обгрунтовано різноманітність методів відображення основної пам'яті на
кеш пам'ять, показано якими методами забезпечується узгодженість вмісту осно­
вної і кеш пам'яті, чим обумовлене введення додаткових рівнів кеш пам'яті й які
чинники впливають на вибір ємності кеш пам'яті і розміру блоку. Введено поняття
статичного і динамічного розподілу пам'яті, поняття віртуальної пам'яті та сто­
рінкової організації пам'яті. Описано алгоритми заміщення, які використовуються
при завантаженні в основну пам'ять вмісту зовнішньої пам'яті, призначення буфера
швидкого перетворення адреси. Розглянуто сегментну організацію пам'яті та пи­
тання захисту пам'яті.
В одинадцятому розділі наведено пояснення способів розпізнавання пристроїв
введення-виведення з використанням шини введення-виведення, лінії активації та
прихованого пам'яттю введення-виведення. Наведено схему та описано функції ін-
терфейсної схеми пристроїв введення-виведення. Наведено чотири загальних мето­
ди керування введенням-виведенням і пояснено суть, переваги та недоліки програмно
керованого введення-виведення. Введено основні поняття та характеристики сис­
теми переривання програм. Наведено опис прямого доступу до пам'яті, його пере­
ваги і недоліки, описано організацію введення-виведення під керуванням периферійних
процесорів.
У дванадцятому розділі розглянуто питання подальшого підвищення продуктив­
ності обробки інформації шляхом створення паралельних комп'ютерних систем. На­
ведено основні положення класифікації комп'ютерних систем, запропоновані Шором
та Фліном, і відповідні класифікаціям структури комп'ютерних систем, зокрема з
спільною та з розподіленою пам'яттю, з однорідним доступом до пам'яті та з нео­
днорідним доступом до пам'яті, а також лише з кеш пам'яттю. Наведено типи ко­
мунікаційних мереж багатопроцесорних систем.
Головною ідеєю книги є концентроване викладення та пояснення базових концепцій
побудови сучасних комп'ютерів без заглиблення в роботу конкретних комп'ютерних
систем, що дає змогу зорієнтуватися у взаємозалежностях та зв'язках елементів ар­
хітектури комп'ютера з метою забезпечення її цілісного бачення і розуміння, та за­
класти фундамент, який дозволяє в разі потреби набути детальнішої спеціалізації.
16

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


Національному університеті "Львівська політехніка" та в кількох закордонних уні­
верситетах, та на основі його багаторічної наукової діяльності. Хотів би виразити
щиру подяку багатьом колегам і друзям за підтримку та допомогу в цій моїй діяльнос­
ті. Окрема подяка доцентам кафедри ЕОМ Національного університету "Львівська
політехніка" В. С. Глухову та В. В. Троценку за обговорення та поради, зроблені під
час написання підручника. І, звичайно, велика подяка моїй дружині Тетяні та синам
Віктору і Юрію за терпіння та розуміння необхідності виконання цієї роботи.
Ми з вдячністю приймемо всі зауваження та побажання.
Автор
Розділ 1

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

1.1. Історичні аспекти розвитку комп'ютерів


В 1946 році Д ж о н ф о н Н е й м а н (John von Neumann) о п и с а в архітектуру комп'ютера,
яка є н а й п о ш и р е н і ш о ю і в д а н и й час. В своїй науковій р о б о т і він назвав н о в и й п р и с т р і й
о б ч и с л ю в а л ь н и м і н с т р у м е н т о м (computing instrument), звідки логічно п о я в и л а с я сучас­
на назва комп'ютера. Ця архітектура дістала назву архітектури Д ж о н а ф о н Н е й м а н а , хоча
в зарубіжній літературі частіше в и к о р и с т о в у є т ь с я термін "Instruction Set Architecture"
("архітектура системи к о м а н д " ) , що вказує як на рівень о п и с у архітектури комп'ютера,
так і на п р о г р а м н и й п р и н ц и п його р о б о т и . До п е р ш и х р о з р о б н и к і в та в п р о в а д ж у в а ч і в
цієї архітектури н а л е ж а т ь Ч а р л ь з Бебідж (Charles Babbedz), к о н с т р у к т о р д в о х механіч­
них комп'ютерів - р і з н и ц е в о ї та аналітичної м а ш и н и (1822-1833 pp.), Д ж о н Атанасов
(John Atanasofr) - а в т о р п е р ш о г о спеціалізованого к о м п ' ю т е р а A B C (1939 рік), К о н р а д
Цузе (Konrad Cuze) (1936-1944 pp.) та Х о в а р д А й к е н (Howard Aiken) (1941-1946 pp.) к о н ­
структори перших е л е к т р о м е х а н і ч н и х к о м п ' ю т е р і в відповідно Z 1 - Z 4 т а М а г к 1 - М а р к 2 ,
Алан Тюрінг (Allan Turing) - один з р о з р о б н и к і в п е р ш о г о е л е к т р о н н о г о к о м п ' ю т е р а C o ­
lossus (1943 рік), П р е с п е р Екерт (Presper Eckert) та Д ж о н М о у ч л і (John Mauchly) - р о з ­
р о б н и к и першого у н і в е р с а л ь н о г о к о м п ' ю т е р а E N I A C (1946 рік), я к и й був о п и с а н и й в
науковій р о б о т і Джона ф о н Н е й м а н а , Мауріс Уілкс (М. Wilkes) - р о з р о б н и к п р о е к т у
комп'ютера E D S A C (1946 рік).
До перших е л е к т р о н н и х комп'ютерів з п р о г р а м н и м к е р у в а н н я м н а л е ж и т ь і мала
електронно-лічильна м а ш и н а ( М Е Л М ) , с т в о р е н а в 1951 р о ц і в І н с т и т у т і е л е к т р о д и н а м і ­
ки Академії Наук України, м. Київ під к е р і в н и ц т в о м академіка С. А. Лебедева (рис. 1.1).
18

Рис. 1.1. Перший в СРСРуніверсальний електронний комп'ютер МЕЛМ (Україна, 1951)

Сучасний стан технології п р о е к т у в а н н я комп'ютерів базується на т е о р е т и ч н и х р о ­


б о т а х р я д у в и д а т н и х дослідників, в п е р ш у чергу С. Крея, з а с н о в н и к а фірми Cray Resea­
rch, яка в и п у с т и л а кілька поколінь н а й п о т у ж н і ш и х в світі комп'ютерів; М. Фліна, я к и й
р о з р о б и в н а й у ж и в а н і ш у класифікацію комп'ютерів, Г. А м д а л я , я к и й с ф о р м у в а в ряд но­
вітніх п о л о ж е н ь р о з в и т к у к о м п ' ю т е р і в , Р. Томасуло, я к и й з а п р о п о н у в а в підхід до вирі­
ш е н н я п и т а н н я е ф е к т и в н о г о з а в а н т а ж е н н я комп'ютера, Д. Коука, я к и й з а п р о п о н у в а в ар­
хітектуру "Америка", на основі якої збудовано к о м п ' ю т е р з с п р о щ е н о ю системою команд
RS/6000 фірми I B M (усі в о н и є в и х і д ц я м и з цієї ф і р м и ) , Д. Хеннессі (Стенфордський уні­
верситет), а в т о р а а р х і т е к т у р и к о м п ' ю т е р а з с п р о щ е н о ю системою команд M I P S , засно­
в н и к а ф і р м и M I P S (зараз це підрозділ ф і р м и Silicon Graphics, однієї з провідних фірм по
в и г о т о в л е н н ю с у п е р к о м п ' ю т е р і в ) , Д. П а т т е р с о н а ( К а л і ф о р н і й с ь к и й університет), авто­
ра архітектури к о м п ' ю т е р і в з с п р о щ е н о ю системою команд RISC І та RISC II, технології
R A I D з б е р е ж е н н я д а н и х т о щ о . ї х ідеї були а п р о б о в а н і ш л я х о м с т в о р е н н я т а п р а к т и ч н о ­
го в и к о р и с т а н н я к о м п ' ю т е р і в фірм Cray Research, I B M , Silicon Graphics, Intel, MIPS, S U N
Microsystems, Digital Equipment Corporation, Transmeta та багатьох інших.

1.2. Функції, структура та характеристики комп'ютера

1.2.1. Функції та основні функціональні вузли комп'ютера


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

інформацію в ц и ф р о в і й формі, о б р о б л я є її відповідно до вказівок к о м а н д п р о г р а м и в и ­


конання алгоритму, та в и д а є результати о б ч и с л е н ь .
Д о о с н о в н и х ф у н к ц і й , які в и к о н у є к о м п ' ю т е р , н а л е ж а т ь наступні:
> с п р и й н я т т я вхідної і н ф о р м а ц і ї - в х і д н и х даних, які підлягають о б р о б ц і , та п р о ­
грам в и р і ш е н н я задач ( п р о г р а м о б р о б к и вхідних д а н и х ) ;
> зберігання інформації, т о б т о вхідних і п р о м і ж н и х д а н и х та результатів о б ч и с ­
лень, п р о г р а м в и р і ш е н н я задач, д о в і д н и к о в о ї інформації, п р о г р а м о п е р а ц і й н о ї системи
комп'ютера і т. д.;
> в и к о н а н н я а р и ф м е т и ч н и х , логічних та і н ш и х операцій;
> а в т о м а т и ч н е к е р у в а н н я р о б о т о ю с к л а д о в и х ч а с т и н комп'ютера, їх в з а є м о д і є ю м і ж
собою та з з о в н і ш н і м и п р и с т р о я м и в і д п о в і д н о до п р о г р а м и ;
> в и в е д е н н я результатів обчислень.
Для з а б е з п е ч е н н я в и к о н а н н я ц и х ф у н к ц і й д о складу к о м п ' ю т е р а п о в и н н і входити
такі основні ф у н к ц і о н а л ь н і вузли: п р и с т р о ї в в е д е н н я інформації, п р и с т р о ї в и в е д е н н я
інформації, п а м ' я т ь та п р о ц е с о р , як це п о к а з а н о на рис. 1.2.

Пристрої Зовнішня Арифметико-


введення пам'ять (ЗП) логічний
пристрій (АЛП)

Основна Регістрова
Пристрої пам'ять (ОП)
виведення (РП)

Кеш нам'ять Пристрій


ПРИСТРОЇ (КП) керування
ВВЕДЕННЯ- (ПК)
ВИВЕДЕННЯ
ПАМ'ЯТЬ ПРОЦЕСОР

Рис. 1.2. Основні функціональні вузли комп'ютера

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


П р и с т р о ї в в е д е н н я - в и в е д е н н я в и к о н у ю т ь в в е д е н н я та в и в е д е н н я інформації. До ч и с ­
ла пристроїв в в е д е н н я - в и в е д е н н я належать:
> п р и с т р о ї введення - клавіатура, м и ш а , сканер, відеокамера і т. д.;
> п р и с т р о ї виведення - м о н і т о р и (з е л е к т р о н н о - п р о м е н е в о ю т р у б к о ю та рідкокрис­
талічні), п р и н т е р , графопобудовувач і т. д.
П а м ' я т ь призначена для зберігання інформації. Т и п и пам'яті:
> кеш п а м ' я т ь (КП) - в и с о к о ш в и д к і с н а п а м ' я т ь невеликої є м н о с т і , в и к о р и с т а н н я
якої д о з в о л я є п р и с к о р и т и обмін і н ф о р м а ц і є ю м і ж о с н о в н о ю п а м ' я т т ю і п р о ц е с о р о м .
20

> о с н о в н а п а м ' я т ь ( О П ) - п а м ' я т ь великої ємності, яка зберігає інформацію, що під­


л я г а є о б р о б ц і в процесорі. До інформації, я к а зберігається в О П , належать вхідні дані,
які п і д л я г а ю т ь о б р о б ц і в і д п о в і д н о до в и к о н у в а н о г о алгоритму, результати п р о м і ж н и х
о б ч и с л е н ь , вихідні дані, к о м а н д и п р о г р а м и в и к о н а н н я алгоритму, а к т и в н а частина опе­
р а ц і й н о ї системи к о м п ' ю т е р а . І н ф о р м а ц і я в ОП п о с т і й н о з м і н ю є т ь с я , тобто це пам'ять
д л я к о р о т к о т е р м і н о в о г о з б е р і г а н н я інформації;
> з о в н і ш н я п а м ' я т ь (ЗП) - п а м ' я т ь великої є м н о с т і для зберігання всієї інформації
к о м п ' ю т е р а . Я к щ о при в и м к н е н н і к о м п ' ю т е р а і н ф о р м а ц і я в ОП пропадає, тобто вона є
е н е р г о з а л е ж н о ю , то на і н ф о р м а ц і ю ЗП в и м к н е н н я к о м п ' ю т е р а не в п л и в а є , тобто це є
е н е р г о н е з а л е ж н а п а м ' я т ь д л я д о в г о т е р м і н о в о г о з б е р і г а н н я інформації.
П р о ц е с о р в и к о н у є о б р о б к у і н ф о р м а ц і ї т а керує р о б о т о ю і н ш и х вузлів комп'ютера.
До складу п р о ц е с о р а входять н а с т у п н і ф у н к ц і о н а л ь н і вузли:
> а р и ф м е т и к о - л о г і ч н и й п р и с т р і й ( А Л П ) - набір к о м б і н а ц і й н и х схем, які в и к о н у ю т ь
а р и ф м е т и ч н і , логічні та інші операції;
> регістрова п а м ' я т ь (РП) - набір п р о г р а м н о д о с т у п н и х регістрів, в я к и х зберігаєть­
ся н а й ч а с т і ш е в и к о р и с т о в у в а н а в п р о ц е с о р і і н ф о р м а ц і я ;
> п р и с т р і й к е р у в а н н я (ПК) - керує р о б о т о ю та в з а є м о д і є ю ф у н к ц і о н а л ь н и х вузлів
комп'ютера.

1.2.2. Тенденції зміни основних характеристик апаратних засобів комп'ютера


К о м п ' ю т е р с к л а д а є т ь с я з а п а р а т н и х засобів і п р о г р а м н о г о з а б е з п е ч е н н я . Апаратні
з а с о б и є б а з о в и м рівнем к о м п ' ю т е р а , на я к о м у м о ж у т ь бути створені багато в и щ и х рів­
нів ш л я х о м р о з р о б л е н н я та з а в а н т а ж е н н я відповідного п р о г р а м н о г о забезпечення.
Х а р а к т е р и с т и к и а п а р а т н и х засобів в значній мірі в п л и в а ю т ь на споживчі властивос­
ті комп'ютера. Тому р о з г л я н е м о , я к и м и п о к а з н и к а м и х а р а к т е р и з у ю т ь с я основні вузли
комп'ютера.
О д н а з в а ж л и в и х х а р а к т е р и с т и к п р и с т р о ї в в в е д е н н я - в и в е д е н н я - швидкість введен­
ня та в и в е д е н н я інформації. Вона з а л е ж и т ь від т и п у п р и с т р о ю в в е д е н н я - в и в е д е н н я і ле­
ж и т ь в ш и р о к и х межах: від о д и н и ц ь байтів за секунду для клавіатури до сотень мільйо­
нів байтів за секунду для відеокамери.
О с н о в н і х а р а к т е р и с т и к и р е г і с т р о в о г о ф а й л у п р о ц е с о р а , кеш, основної та зовнішньої
пам'яті це є м н і с т ь та час д о с т у п у до даних. Ємність ЗП у десятки, а часто і у тисячі разів
п е р е в и щ у є є м н і с т ь О П . Н а п р и к л а д , у сучасних п е р с о н а л ь н и х к о м п ' ю т е р а х ємність ОП
знаходиться в м е ж а х від сотень м і л ь й о н і в до кількох мільярдів байтів, тоді як ємність ЗП
з н а х о д и т ь с я в межах від десятків до сотень мільярдів байтів.
Розділення п а м ' я т і на ОП та ЗП в и к л и к а н е с п о в і л ь н е н н я м її р о б о т и із з б і л ь ш е н н я м
ємності. Так, я к щ о час з в е р н е н н я до ЗП с т а н о в и т ь т и с я ч н і частки секунди, то час звер­
н е н н я до ОП с т а н о в и т ь м і л ь й о н н і ч а с т и н и секунди. Це ж саме стало п р и ч и н о ю появи
кеш пам'яті, яка м а є м е н ш у н і ж ОП ємність, але за часом з а п и с у - з ч и т у в а н н я даних є
з н а ч н о б л и ж ч о ю до регістрової пам'яті процесора.
О с н о в н и м и х а р а к т е р и с т и к а м и п р о ц е с о р а є його п р о д у к т и в н і с т ь , точність та дина­
м і ч н и й діапазон п р е д с т а в л е н н я даних. П р о д у к т и в н і с т ь з а л е ж и т ь від частоти р о б о т и
п р о ц е с о р а та його с т р у к т у р и і в и м і р ю є т ь с я кількістю в и к о н у в а н и х операцій за секунду.
Сучасні п р о ц е с о р и м а ю т ь п р о д у к т и в н і с т ь п о н а д 1 м і л ь я р д операцій за секунду.
21

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


строями, надійністю, ціною, с п о ж и в а н о ю п о т у ж н і с т ю , масою, г а б а р и т а м и , стійкістю до
зовнішніх факторів в п л и в у ( т е м п е р а т у р н и й діапазон, вологість, вібрація і т. д.). З н а ч е н ­
ня цих х а р а к т е р и с т и к в значній мірі в и з н а ч а ю т ь с я д о с я г н е н н я м и інтегральної техноло­
гії, зокрема п р о е к т н и м и р о з м і р а м и н а п і в п р о в і д н и к о в и х елементів кристалу, які в п л и в а ­
ють як на ємність кристалу, а відповідно на масу та габарити, так і на частотні п а р а м е т р и
його елементів.
Для того, щ о б у с п і ш н о п р о е к т у в а т и к о м п ' ю т е р и та знати п е р с п е к т и в и їх р о з в и т к у ,
необхідно знати тенденції зміни з ч а с о м п е р е р а х о в а н и х в и щ е х а р а к т е р и с т и к к о м п ' ю т е ­
ра, в першу чергу х а р а к т е р и с т и к його елементної бази.
П р о д у к т и в н і с т ь . П р о д у к т и в н і с т ь к о м п ' ю т е р а з м і н ю є т ь с я через зміну х а р а к т е р и с ­
тик його ф у н к ц і о н а л ь н и х вузлів. Р о з г л я н е м о як це в і д б у в а є т ь с я на п р и к л а д і п р о ц е с о р а .
З к о ж н и м р о к о м з р о с т а є ємність кристалу, що д о з в о л я є р о з м і с т и т и на н ь о м у все
складніші схеми. Відповідно до е м п і р и ч н о г о з а к о н у М у р а , в і д к р и т о г о н и м в 1965 році,
кількість т р а н з и с т о р і в , які в д а є т ь с я р о з м і с т и т и на к р и с т а л і м і к р о с х е м и , п о д в о ю є т ь с я
кожні 12 місяців. В середині 90-х років М у р с к о р и г у в а в свій закон, я к и й тепер т в е р д и т ь ,
що кількість т р а н з и с т о р і в , які вдається р о з м і с т и т и на к р и с т а л і м і к р о с х е м и , п о д в о ю є т ь ­
ся кожні 18 місяців, що п і д т в е р д ж у є рис. 1.3, де н а в е д е н о кількість т р а н з и с т о р і в на к р и с ­
талах процесорів п р о в і д н и х в и р о б н и к і в світу.

Паралелізм рівня Паралелізм рівня


Паралелізм рівня даних команд потоків команд і даних

1970 1975 1980 1985 1990 1995 2000 2005 2010


Рік випуску

Рис. 1 3. Ріст ємності кристалу з роками


22

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


ра ш л я х о м у с к л а д н е н н я його о с н о в н и х вузлів та введення д о п о м і ж н и х вузлів, які дозво­
л я ю т ь п р и с к о р и т и о б р о б к у даних. М е т о ю такої модифікації є в першу чергу підвищення
п р о д у к т и в н о с т і п р о ц е с о р а . Як в и д н о з рис. 1.3, до середини 80-х років для цього вико­
р и с т о в у в а в с я паралелізм рівня даних, т о б т о с у м і щ е н н я в часі о б р о б к и в процесорі дея­
кої кількості даних, далі паралелізм рівня команд, т о б т о с у м і щ е н н я в часі в и к о н а н н я в
процесорі деякої кількості різних команд. Сьогодні це паралелізм рівня потоків команд
і даних. Всі н а з в а н і т и п и паралелізму будуть р о з г л я н у т і далі при розгляді організації
р о б о т и процесора.
Зі з м е н ш е н н я м р о з м і р і в т р а н з и с т о р і в , які реалізуються на кристалі мікросхеми, під­
в и щ у є т ь с я і тактова частота р о б о т и п р о ц е с о р а (рис. 1.4).

1970 1975 1980 1985 1990 1995 2000 2005 2010 Рік випуску
Рис. 1.4. Ріст тактової частоти роботи процесора (за матеріалами Intel Corp.)

Щ о р о к у тактова частота р о б о т и п р о ц е с о р а з р о с т а є п р и б л и з н о на ЗО %.
Узагальнюючою х а р а к т е р и с т и к о ю швидкодії к о м п ' ю т е р а є його продуктивність, яка
враховує як ріст тактової частоти, так і архітектурні в д о с к о н а л е н н я . Починаючи з сере­
д и н и 80-х р о к і в п р о д у к т и в н і с т ь комп'ютерів з р о с т а є щ о р о к у п р и б л и з н о на 50 %.
Ємність о с н о в н о ї пам'яті. Ємність динамічної н а п і в п р о в і д н и к о в о ї пам'яті з довіль­
н и м д о с т у п о м (Dynamic Random Access M e m o r y - D R A M ) з р о с т а є в чотири р а з и кожних
три р о к и (рис. 1.5).
23

Ємність пам'яті
на кристалі 1 Гб

100 Мб

1 Мб -

1 к-

I > І І і і t і і і і І І І І 1 І 1
І 1 t S > і ^ t

1985 1990 1995 2000 2005 2010 Рік випуску

Рис. 1.5. Ріст ємності динамічної напівпровідникової пам'яті

Час ч и т а н н я / з а п и с у D R A M з м е н ш у є т ь с я в два р а з и за ч о т и р и р о к и , тоді як в п р о ц е ­


сорі за той же час частота з р о с т а є більш як в три рази. Для у з г о д ж е н н я швидкодії п р о ­
цесора та пам'яті в и к о р и с т о в у ю т ь с я наступні підходи та засоби:
> одно- та багаторівнева кеш п а м ' я т ь ;
> збільшення р о з р я д н о с т і ш и н о б м і н у для передачі кількох д а н и х паралельно;
> р о з ш а р у в а н н я пам'яті.
Ємність зовнішньої пам'яті. Щ о р о к у ємність з о в н і ш н ь о ї дискової пам'яті збільшу­
ється в 2 р а з и за рахунок п і д в и щ е н н я щільності запису.
Точність та динамічний діапазон. Ріст ємності к р и с т а л у д о з в о л я є реалізувати в н ь о ­
му складні багаторозрядні вузли комп'ютера. Сьогоднішні к о м п ' ю т е р и в о с н о в н о м у є 32-
та 64-розрядними з забезпеченням о б р о б к и даних як в форматі з фіксованою комою, так
і в форматі з рухомою комою, яка м а є значно ш и р ш и й діапазон представлення даних.
Швидкість обміну. П і д в и щ е н н я ш в и д к о с т і обміну м і ж в у з л а м и к о м п ' ю т е р а досяга­
ється ш л я х о м п і д в и щ е н н я тактової частоти їх р о б о т и , к о н с т р у к т и в н и х та технологічних
вдосконалень, а також ш л я х о м с т в о р е н н я нових стандартів о б м і н у та введення п р и с т р о ­
їв для їх підтримки.
З р о з в и т к о м елементної бази т а к о ж п і д в и щ у є т ь с я надійність р о б о т и комп'ютера,
з н и ж у є т ь с я питома ціна о д и н и ц і о б л а д н а н н я , а т а к о ж з м е н ш у є т ь с я її п и т о м а с п о ж и в а н а
потужність, маса, та габарити, п о к р а щ у ю т ь с я експлуатаційні х а р а к т е р и с т и к и .

1.2.3. Оцінка продуктивності комп'ютера

1.2.3.1. Одиниці оцінки продуктивності

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


технологічних, так і від архітектурних рішень. В процесі р о з в и т к у комп'ютерної техніки
24

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


і користувачам здійснювати вибір між а л ь т е р н а т и в а м и на основі кількісних показників.
П р и п у с т и м о , що в и к о р и с т а н о два к о м п ' ю т е р и для в и к о н а н н я тієї ж п р о г р а м и . Я к щ о
п е р ш и й к о м п ' ю т е р в и к о н а в п р о г р а м у за м е н ш и й час у п о р і в н я н н і з другим, м о ж н а гово­
р и т и , що п е р ш и й к о м п ' ю т е р є ш в и д ш и м . Час в и к о н а н н я п р о г р а м и включає час р о б о т и
п р о ц е с о р а , час з в е р н е н н я до дискової пам'яті, час з в е р н е н н я до основної пам'яті, час
в в е д е н н я - в и в е д е н н я д а н и х і накладні в и т р а т и о п е р а ц і й н о ї системи. Оскільки при роботі
в м у л ь т и п р о г р а м н о м у р е ж и м і під час о ч і к у в а н н я в в е д е н н я - в и в е д е н н я для однієї п р о ­
грами, п р о ц е с о р м о ж е в и к о н у в а т и і н ш у програму, то система не о б о в ' я з к о в о мінімізу­
в а т и м е час в и к о н а н н я даної к о н к р е т н о ї п р о г р а м и . Тому в к а з а н и й підхід до п о р і в н я н н я
к о м п ' ю т е р і в не є д о с к о н а л и м .
І н ш и м підходом до п о р і в н я н н я к о м п ' ю т е р і в є п о р і в н я н н я часу р о б о т и процесора,
необхідного для в и к о н а н н я заданої п р о г р а м и , я к и й не включає час о ч і к у в а н н я введен­
н я - в и в е д е н н я або час в и к о н а н н я іншої п р о г р а м и . Час р о б о т и п р о ц е с о р а може бути ви­
р а ж е н и й кількістю тактів синхронізації для даної п р о г р а м и , п о м н о ж е н о ю на тривалість
т а к т у синхронізації.
В а ж л и в о ю та ч а с т о в ж и в а н о ю х а р а к т е р и с т и к о ю є середня кількість тактів синхроні­
зації п р о ц е с о р а на одну к о м а н д у СРІ (clock cycles per instruction). П р и відомій кількості
в и к о н у в а н и х к о м а н д в п р о г р а м і ця х а р а к т е р и с т и к а д о з в о л я є ш в и д к о оцінити час р о б о ­
ти п р о ц е с о р а , необхідний для в и к о н а н н я заданої п р о г р а м и .
Д о с к о н а л і ш о ю о д и н и ц е ю , я к у м о ж н а в и к о р и с т а т и для п о р і в н я н н я комп'ютерів, є
п р о д у к т и в н і с т ь , т о б т о загальна кількість о б ч и с л ю в а л ь н о ї р о б о т и , я к у комп'ютер в и к о ­
нує за ф і к с о в а н и й ч а с о в и й інтервал. Я к щ о час в и к о н а н н я деякої п р о г р а м и позначити че­
р е з Т, то п р о д у к т и в н і с т ь Р к о м п ' ю т е р а м о ж н а в и з н а ч и т и н а с т у п н и м ч и н о м : Р = 1/Т. Тоді
п о р і в н я н н я д в о х к о м п ' ю т е р і в X і Y м о ж н а в и к о н а т и за н а с т у п н и м и п р а в и л а м и : я к щ о
1/Тх > І/Ту т о б т о Ту > Тх, то к о м п ' ю т е р X є ш в и д ш и м . В сучасних к о м п ' ю т е р а х продук­
т и в н і с т ь в и м і р ю є т ь с я в м і л ь й о н а х о п е р а ц і й за секунду - M I P S . Таким ч и н о м , п р о д у к т и в ­
ність м о ж е бути в и з н а ч е н а я к з в о р о т н а д о часу в и к о н а н н я в е л и ч и н а , п р и ч о м у ш в и д ш і
к о м п ' ю т е р и при ц ь о м у м а т и м у т ь в и щ и й р е й т и н г кількості операцій за о д и н и ц ю часу.
П о з и т и в н и м и с т о р о н а м и кількості о п е р а ц і й за о д и н и ц ю часу як одиниці оцінки продук­
т и в н о с т і к о м п ' ю т е р а є те, що цю х а р а к т е р и с т и к у легко з р о з у м і т и , о с о б л и в о п о к у п ц ю , і
щ о ш в и д ш и й к о м п ' ю т е р х а р а к т е р и з у є т ь с я б і л ь ш и м числом операцій з а о д и н и ц ю часу.
П р о т е в и к о р и с т а н н я цієї одиниці як м е т р и к и для п о р і в н я н н я н а т р а п л я є на дві пробле­
м и . П о - п е р ш е , в о н а з а л е ж и т ь від н а б о р у к о м а н д процесора, щ о ускладнює п о р і в н я н н я
комп'ютерів з р і з н и м и системами к о м а н д . По-друге, навіть на о д н о м у і тому ж комп'юте­
рі вона з м і н ю є т ь с я від п р о г р а м и до п р о г р а м и .
В и м і р ю в а н н я п р о д у к т и в н о с т і к о м п ' ю т е р і в при в и р і ш е н н і науково-технічних задач,
в я к и х п е р е в а ж н о в и к о р и с т о в у є т ь с я п р е д с т а в л е н н я даних в форматі з р у х о м о ю комою,
з а в ж д и в и к л и к а л о о с о б л и в и й інтерес. С а м е д л я т а к и х о б ч и с л е н ь в п е р ш е постало пи­
т а н н я п р о в и м і р ю в а н н я п р о д у к т и в н о с т і , а за д о с я г н у т и м и п о к а з н и к а м и часто р о б и л и с я
в и с н о в к и п р о з а г а л ь н и й рівень р о з р о б о к к о м п ' ю т е р і в . З а з в и ч а й для науково-технічних
з а в д а н ь п р о д у к т и в н і с т ь к о м п ' ю т е р а о ц і н ю є т ь с я в кількості о п е р а ц і й з р у х о м о ю комою
за секунду F L O P S (Floating Point Operations Per Second). В сьогоднішніх к о м п ' ю т е р а х це
мільйони та м і л ь я р д и о п е р а ц і й з р у х о м о ю к о м о ю за секунду - M F L O P S , G F L O P S .
25

П о т р і б н о відзначити, що в и щ е н а з в а н і о д и н и ц і в и м і р ю в а н н я - такт (або частота)


синхронізації, середня кількість тактів на к о м а н д у і п р о д у к т и в н і с т ь к о м п ' ю т е р а є вза­
є м о з в ' я з а н и м и . Н е м о ж л и в о з м і н и т и ж о д н у з н и х і з о л ь о в а н о від іншої, оскільки базові
технології, в и к о р и с т о в у в а н і д л я зміни кожної з ц и х х а р а к т е р и с т и к , в з а є м о з в ' я з а н і : час­
тота синхронізації в и з н а ч а є т ь с я технологією в и г о т о в л е н н я а п а р а т н и х засобів і ф у н к ­
ціональною організацією п р о ц е с о р а ; середня кількість тактів на к о м а н д у з а л е ж и т ь від
функціональної організації і архітектури системи команд; а кількість в и к о н у в а н и х в
програмі к о м а н д в и з н а ч а є т ь с я а р х і т е к т у р о ю системи к о м а н д і технологією к о м п і л я т о ­
рів. Коли п о р і в н ю ю т ь с я два к о м п ' ю т е р и , необхідно р о з г л я д а т и всі три к о м п о н е н т и , щ о б
зрозуміти відносну п р о д у к т и в н і с т ь .

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

Важливість с т в о р е н н я пакетів тестів, щ о б а з у ю т ь с я н а р е а л ь н и х п р и к л а д н и х п р о ­


грамах ш и р о к о г о кола к о р и с т у в а ч і в і з а б е з п е ч у ю т ь е ф е к т и в н у о ц і н к у п р о д у к т и в н о с т і
комп'ютерів, була усвідомлена більшістю н а й б і л ь ш и х в и р о б н и к і в к о м п ' ю т е р н и х засобів,
які в 1988 році з а с н у в а л и н е п р и б у т к о в у к о р п о р а ц і ю S P E C (Standard Performance Evalu­
ation Corporation). О с н о в н о ю м е т о ю цієї організації є р о з р о б к а і п і д т р и м к а с т а н д а р т и ­
зованого набору с п е ц і а л ь н о п і д і б р а н и х на основі досвіду тестових п р о г р а м для о ц і н к и
продуктивності новітніх п о к о л і н ь в и с о к о п р о д у к т и в н и х к о м п ' ю т е р і в .
О с н о в н и м результатом р о б о т и S P E C є н а б о р и тестів. Ці н а б о р и р о з р о б л я ю т ь с я SPEC
з в и к о р и с т а н н я м кодів, що п о с т у п а ю т ь з різних д ж е р е л . S P E C п р а ц ю є над в с т а н о в л е н ­
ням цих кодів на різні п л а т ф о р м и , а т а к о ж с т в о р ю є і н с т р у м е н т а л ь н і з а с о б и для ф о р м у ­
вання з ц и х кодів о с м и с л е н и х р о б о ч и х н а в а н т а ж е н ь . В д а н и й час є два базові н а б о р и
тестів SPEC, що о р і є н т о в а н і на інтенсивні р о з р а х у н к и і в и м і р ю ю т ь п р о д у к т и в н і с т ь п р о ­
цесора, пам'яті, а т а к о ж е ф е к т и в н і с т ь генерації коду к о м п і л я т о р о м . Н а б і р тестів СІХТ,
що в и м і р ю є п р о д у к т и в н і с т ь п р о ц е с о р а п р и о б р о б ц і ц і л и х чисел, складається з п р о г р а м ,
н а п и с а н и х на мові С і в и б р а н и х з р і з н и х п р и к л а д н и х областей: теорія дробів, інтерпре­
татор мови LISP, р о з р о б к а л о г і ч н и х схем, п а к у в а н н я т е к с т о в и х ф а й л і в , е л е к т р о н н і та­
блиці і к о м п і л я ц і я п р о г р а м . Н а б і р тестів CFP, що в и м і р ю є п р о д у к т и в н і с т ь п р о ц е с о р а
при о б р о б ц і чисел з р у х о м о ю к о м о ю , складається з п р о г р а м , т а к о ж в и б р а н и х з різних
п р и к л а д н и х областей: р о з р о б к а а н а л о г о в и х схем, м о д е л ю в а н н я м е т о д о м М о н т е - К а р л о ,
квантова хімія, оптика, р о б о т о т е х н і к а , к в а н т о в а фізика, а с т р о ф і з и к а , п р о г н о з погоди і
інші наукові та інженерні з а в д а н н я . Ч а с т и н а п р о г р а м з ц ь о г о н а б о р у н а п и с а н а на мові С,
інша частина - на Ф о р т р а н і . Результати в и к о н а н н я к о ж н о г о і н д и в і д у а л ь н о г о тесту з ц и х
двох наборів в и р а ж а ю т ь с я в і д н о ш е н н я м часу в и к о н а н н я однієї копії тесту на к о м п ' ю т е ­
рі, що тестується, до часу її в и к о н а н н я на д е я к о м у е т а л о н н о м у комп'ютері.
І н ш и м підходом до о ц і н к и п р о д у к т и в н о с т і к о м п ' ю т е р і в за д о п о м о г о ю тестів є р о з ­
р о б к а спеціального п р о г р а м н о г о з а б е з п е ч е н н я ( с и н т е т и ч н и х тестів), щ о д о з в о л я є с т в о ­
рювати різні робочі н а в а н т а ж е н н я , в і д п о в і д н о до р і в н я системи, що тестується, і до
вимог щ о д о її в и к о р и с т а н н я . О д н і є ю з н е з а л е ж н и х о р г а н і з а ц і й , яка здійснює о ц і н к у п р о ­
д у к т и в н о с т і к о м п ' ю т е р н и х систем за д о п о м о г о ю с и н т е т и ч н и х тестів, є п р и в а т н а компа­
нія A I M Technology, яка була з а с н о в а н а в 1981 році. К о м п а н і я р о з р о б л я є і п о с т а в л я є п р о ­
грамне з а б е з п е ч е н н я для в и м і р ю в а н н я п р о д у к т и в н о с т і систем, а т а к о ж надає послуги з
т е с т у в а н н я систем к і н ц е в и м к о р и с т у в а ч а м і п о с т а ч а л ь н и к а м к о м п ' ю т е р н и х систем та
мереж, які в и к о р и с т о в у ю т ь п р о м и с л о в і с т а н д а р т н і о п е р а ц і й н і системи, такі як U N I X і
26

OS/2. Це п р о г р а м н е з а б е з п е ч е н н я складається з двох о с н о в н и х частин: генератора тесто­


в и х пакетів і сумішей н а в а н т а ж е н ь п р и к л а д н и х завдань. П р и к о ж н о м у запуску генера­
тора м о ж у т ь в и к о н у в а т и с я будь-які окремі або всі д о с т у п н і тести у будь-якому порядку
і при будь-якій кількості п р о х о д ж е н ь , д о з в о л я ю ч и т и м самим створювати для системи
п р а к т и ч н о довільне р о б о ч е н а в а н т а ж е н н я . Я к щ о деякі необхідні тести відсутні у складі
генератора тестових пакетів, то в о н и м о ж у т ь бути туди легко додані. На основі оцінки
п р о д у к т и в н о с т і системи в и б и р а ю т ь с я різні рівні з б і л ь ш е н н я н а в а н т а ж е н н я . Це дозволяє
з д о с т а т н ь о ю достовірністю з р о б и т и в и с н о в о к п р о м о ж л и в о с т і р о б о т и системи при да­
н о м у н а в а н т а ж е н н і а б о при зміні н а в а н т а ж е н н я . П р и ц ь о м у в а ж л и в и м є підбір сумішей
н а в а н т а ж е н ь , які ділять на дві категорії: замовлені і стандартні. Замовлені суміші ство­
р ю ю т ь для т о ч н о г о м о д е л ю в а н н я о с о б л и в о с т е й середовища кінцевого користувача або
п о с т а ч а л ь н и к а у с т а т к у в а н н я . С т а н д а р т н і суміші є з в и ч а й н и м середовищем п р и к л а д н и х
з а в д а н ь . До 'їх складу входять, з о к р е м а , суміші для р о б о ч и х станцій, геоінформаційних
систем, ділових з а с т о с у в а н ь , к е р у в а н н я б а з о ю д а н и х та інші.
В а ж л и в и м є с т в о р е н н я тестів та оцінка п р о д у к т и в н о с т і комп'ютерів на задачах з
області їх к о н к р е т н о г о з а с т о с у в а н н я . Так, н а п р и к л а д , фірма B D T I надає послуги з пи­
т а н ь аналізу п р о д у к т и в н о с т і комп'ютерів, п р и з н а ч е н и х для в и р і ш е н н я задач ц и ф р о в о ї
о б р о б к и сигналів. З р о з ш и р е н н я м в и к о р и с т а н н я комп'ютерів при о б р о б ц і транзакцій
( к о м е р ц і й н и й обмін т о в а р а м и , послугами або г р о ш и м а ) все в а ж л и в і ш и м стає забезпе­
ч е н н я м о ж л и в о с т і їх к о р е к т н о г о п о р і в н я н н я м і ж собою. З цією метою в 1988 році була
с т в о р е н а Рада для о ц і н к и п р о д у к т и в н о с т і о б р о б к и т р а н з а к ц і й (ТРС - Transaction Proces­
sing Performance Council), я к а є н е п р и б у т к о в о ю організацією. Т Р С публікує специфікації
тестових пакетів, які регулюють п и т а н н я , п о в ' я з а н і з р о б о т о ю тестів. Ці специфікації га­
р а н т у ю т ь , щ о п о к у п ц і м а ю т ь о б ' є к т и в н і з н а ч е н н я д а н и х для п о р і в н я н н я продуктивності
різних к о м п ' ю т е р н и х систем.

1.2.4. Організація зв'язків між функціональними вузлами комп'ютера


Для з а б е з п е ч е н н я р о б о т и к о м п ' ю т е р а його ф у н к ц і о н а л ь н і вузли повинні бути від­
п о в і д н и м ч и н о м з'єднані. О б м і н і н ф о р м а ц і є ю м і ж вузлами комп'ютера п р о в о д и т ь с я по
шинах, до складу я к и х входять п ліній, де п - р о з р я д н і с т ь і н ф о р м а ц і й н о г о слова. Є три
г о л о в н и х т и п и ш и н : ш и н а даних, ш и н а к е р у в а н н я (або ш и н а команд) та ш и н а адрес, які
в и к о р и с т о в у ю т ь с я відповідно для п е р е с и л а н н я даних, к о м а н д та 'їх адрес.
Три н а й у ж и в а н і ш и х с т р у к т у р и комп'ютера, які відрізняються організацією зв'язку
м і ж його ф у н к ц і о н а л ь н и м и вузлами, р о з г л я н у т о н и ж ч е .
В д в о ш и н н і й с т р у к т у р і к о м п ' ю т е р а з о б м і н о м через п р о ц е с о р (рис. 1.6) введення ін­
ф о р м а ц і ї з п р и с т р о ю в в е д е н н я до основної п а м ' я т і , та виведення інформації з основної
п а м ' я т і до п р и с т р о ю в и в е д е н н я здійснюється через п р о ц е с о р .
шина введення-
виведення
Пристрій введення шина нам яті
Кеш Основна
Процесор
пам'ять пам'ять

Пристрій виведення

Рис. 1.6. Двошинна структура комп'ютера з обміном через процесор


27

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


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

Процесор
Пристрій введення введення-виведення

шина введення- шина


виведення пам'яті
Основна Кеш Центральний
Пристрій виведення пам'ять пам'ять процесор

Рис. 1.7. Двошинна структура комп'ютера з обміном через пам'ять

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


дення тут використовується с п е ц і а л ь н и й п р о ц е с о р в в е д е н н я - в и в е д е н н я (часто його на­
зивають каналом або п е р и ф е р і й н и м п р о ц е с о р о м ) , я к и й о т р и м у є з а в д а н н я н а в и к о н а н н я
операцій в в е д е н н я - в и в е д е н н я від п р о ц е с о р а (в ц ь о м у в и п а д к у о с т а н н і й н а з и в а ю т ь ц е н ­
т р а л ь н и м п р о ц е с о р о м ) , та керує взаємодією пам'яті та п р и с т р о ї в в в е д е н н я - в и в е д е н н я .
Дана с т р у к т у р а була в и к о р и с т а н а п р и побудові багатьох к о м п ' ю т е р і в , з о к р е м а к о м п ' ю ­
терів серій ІВМ/360 та ІВМ/370 ф і р м и I B M .
В одношинній структурі к о м п ' ю т е р а (рис. 1.8) всі його ф у н к ц і о н а л ь н і вузли з'єднані
через одну спільну шину. Ш и н а р о з п о д і л я є т ь с я м і ж н и м и в часі, т о м у о д н о ч а с н о посила­
ти дані на ш и н у може тільки один вузол.

Пристрій Пристрій
введення виведення
Процесор Пам'ять Буфер і Контролер Буфер Контролер
1

Арбітр
шини
Рис. 1.8. Однотипна структура комп'ютера

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


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

шує, ч и я черга є п е р ш о ю , і підключає до ш и н и відповідний пристрій. Зазвичай перевага


віддається п р и с т р о я м в в е д е н н я - в и в е д е н н я , оскільки р о б о т у дисків та і н ш и х пристроїв з
рухомою механікою не м о ж н а п е р е р и в а т и , щ о б не в т р а т и т и інформації.
Н а я в н і с т ь спільної ш и н и с у т т є в о с п р о щ у є реалізацію к о м п ' ю т е р а та д о з в о л я є легко
з а м і н ю в а т и його склад. Тому така с т р у к т у р а о т р и м а л а ш и р о к е р о з п о в с ю д ж е н н я . Вона
була п о к л а д е н а в основу з о к р е м а комп'ютерів PDP-8 та PDP-11 фірми Digital Equipment
Corporation, С М - 4 К и ї в с ь к о г о з а в о д у у п р а в л я ю ч и х м а ш и н , та з н а й ш л а ш и р о к е застосу­
в а н н я в м і к р о п р о ц е с о р н и х системах.
Для з а б е з п е ч е н н я одночасного обміну і н ф о р м а ц і є ю між р і з н и м и п р и с т р о я м и в су­
ч а с н и х к о м п ' ю т е р а х в и к о р и с т о в у є т ь с я б а г а т о ш и н н а організація.

1.3. Архітектура комп'ютера

1.3.1. Поняття архітектури комп'ютера


Вперше о з н а ч е н н я терміну "архітектура к о м п ' ю т е р а " було зроблене в 1964 році роз­
р о б н и к а м и к о м п ' ю т е р а I B M 360 Г. А м д а л е м та й о г о колегами. Архітектура комп'ютера
з їх т о ч к и з о р у - це його с т р у к т у р а і поведінка як 'їх бачить програміст на асемблерній
мові. Вона в к л ю ч а є наступне: ф о р м а т и д а н и х і команд, методи адресації, систему ко­
м а н д , а т а к о ж з а г а л ь н у організацію п р о ц е с о р а , о с н о в н о ї пам'яті і п р и с т р о ї в введення-
в и в е д е н н я . П і з н і ш е А. П е й д ж е з з тієї ж фірми з а п р о п о н у в а в розуміти під архітектурою
к о м п ' ю т е р а і н т е р ф е й с м і ж його а п а р а т н и м т а п р о г р а м н и м забезпеченням.
Як відомо, в к о м п ' ю т е р і в и к о р и с т о в у є т ь с я д в і й к о в е представлення команд. П р и на­
писанні п р о г р а м и крім двійкової м о ж у т ь в и к о р и с т о в у в а т и с ь і інші ф о р м и представлення
команд: вісімкова, ш і с т н а д ц я т к о в а , с и м в о л ь н а (мнемонічна). В и к о р и с т а н н я вісімково-
го і ш і с т н а д ц я т к о в о г о к о д у в а н н я д о з в о л я є с к о р о т и т и з а п и с и і с п р о с т и т и р о б о т у п р о ­
граміста. М н е м о н і ч н е к о д у в а н н я с п р о щ у є п р о ц е с н а п и с а н н я , ч и т а н н я і відлагодження
п р о г р а м и . О с н о в н и й п р и н ц и п такого к о д у в а н н я - к о ж н а команда представляється 3-х
або 4-х б у к в е н и м с и м в о л о м , я к и й п о к а з у є н а з в у к о м а н д и . Деякі п р и к л а д и мнемонічно­
го к о д у в а н н я : add - додати, sub - в і д н я т и , load - з ч и т а т и дані з пам'яті, store - записа­
ти дані в п а м ' я т ь . О п е р а н д и т а к о ж п р е д с т а в л я ю т ь с я символічно. Н а п р и к л а д , команда
add R, Y о з н а ч а є д о д а в а н н я з н а ч е н н я вмісту к о м і р к и пам'яті Y до вмісту регістра R. За­
у в а ж и м о , що о п е р а ц і я в и к о н у є т ь с я над вмістом, а не над адресою комірки пам'яті та
регістра. Т а к и м ч и н о м , з ' я в л я є т ь с я м о ж л и в і с т ь н а п и с а н н я м а ш и н н и х п р о г р а м в сим­
волічній ф о р м і . П о в н и й набір с и м в о л і ч н и х н а з в і п р а в и л а їх в и к о р и с т а н н я у т в о р ю ю т ь
мову п р о г р а м у в а н н я , в і д о м у як асемблерна мова. З а п и с деякої п р о г р а м и на асемблерній
мові п р е д с т а в л я є собою с и м в о л і ч н и й з а п и с цієї ж п р о г р а м и , написаної на внутрішній
мові к о м п ' ю т е р а , т о б т о в ф о р м і послідовності к о м а н д , представлених в двійкових кодах.
Тому і з ' я в и л о с ь в и з н а ч е н н я архітектури к о м п ' ю т е р а як інтерфейсу між його апаратним
та програмним забезпеченням.
З наведених в и щ е означень м о ж н а з р о б и т и в и с н о в о к п р о і с н у в а н н я м н о ж и н и мож­
л и в и х варіантів а р х і т е к т у р и комп'ютера. Р о з г л я н е м о детальніше складові п о н я т т я архі­
т е к т у р и з т и м , щ о б в и з н а ч и т и ступінь зміни їх х а р а к т е р и с т и к .
Під д а н и м и р о з у м і ю т ь с я числа, представлені в деякій системі числення. В сучасних
к о м п ' ю т е р а х дані в більшості в и п а д к і в представлені в п о з и ц і й н і й двійковій системі чис-
29

лення, яка п р а к т и ч н о витіснила інші с п о с о б и п р е д с т а в л е н н я чисел, н а п р и к л а д , пред­


ставлення в позиційній десятковій системі ч и с л е н н я , в системі з а л и ш к о в и х класів т о щ о .
В комп'ютерах є три класи даних: вхідні, п р о м і ж н і та вихідні, які м о ж н а охарактеризу­
вати н а с т у п н о ю м н о ж и н о ю параметрів: кількістю N даних, ї х р о з р я д н і с т ю п (п= 1,2,3,...),
способом к о д у в а н н я М ( п р я м и й , о б е р н е н и й чи д о п о в н я л ь н и й код), ф о р м о ю п р е д с т а в ­
лення Б (фіксована чи рухома кома), ф о р м а т о м Т (місце р о з м і щ е н н я знаку, ціле чи д р о ­
бове число, місце р о з м і щ е н н я коми, р о з р я д н і с т ь порядку, основа порядку, в и к о р и с т а н ­
ня знаку п о р я д к у чи з м і щ е н н я , р о з р я д н і с т ь м а н т и с и , чи в и к о р и с т о в у є т ь с я н о р м а л і з а ц і я
мантиси). Таким ч и н о м , з а л е ж н о від з н а ч е н н я п а р а м е т р і в п, М, Б, Т м о ж н а в и д і л и т и від­
повідну архітектуру комп'ютера. Н а п р и к л а д , ц е м о ж е бути к о м п ' ю т е р д л я в и к о н а н н я
операцій над 1 6 - р о з р я д н и м и д р о б о в и м и д в і й к о в и м и д а н и м и в ф о р м а т і з фіксованою
комою в д о п о в н я л ь н о м у коді, або це м о ж е бути к о м п ' ю т е р для в и к о н а н н я о п е р а ц і й над
3 2 - р о з р я д н и м и д в і й к о в и м и д а н и м и в форматі з р у х о м о ю комою.
Команда в комп'ютері зберігається в двійковій ф о р м і . Вона в к а з у є тип операції, я к а
має бути в и к о н а н о ю , адреси операндів, над я к и м и в и к о н у є т ь с я операція, та адреси р о з ­
міщення результатів в и к о н а н н я операції. Відповідно до цього команда складається з
двох частин: коду операції та адресної ч а с т и н и . Поле коду операції з а й м а є к р о з р я д і в .
Н и м може бути з а к о д о в а н о до N = 2 різних о п е р а ц і й . Поле адреси (адресна частина)
К

займає т р о з р я д і в . В н ь о м у знаходяться адреси операндів. К о ж н а адреса з а й м а є т


розрядів, де і - н о м е р адреси (і=1, 2....1), 1 - кількість а д р е с н и х полів. К о ж н о ю адресою
м о ж н а адресувати п а м ' я т ь ємністю 2 слів. Таким ч и н о м , з а л е ж н о від ф о р м а т у к о м а н д и
га:

комп'ютери м о ж н а поділити на: к о м п ' ю т е р и з п о с т і й н и м та з м і н н и м ф о р м а т о м к о м а н д и ,


комп'ютери з о д н о а д р е с н и м и , д в о а д р е с н и м и та т р и а д р е с н и м и к о м а н д а м и , к о м п ' ю т е р и
з вузьким та ш и р о к и м ф о р м а т о м к о м а н д и ( з а л е ж н о від кількості полів коду операції та
адресних полів) і т. д.
Як вказано в и щ е , крім коду операції до складу к о м а н д и входить адресна частина.
Цією частиною в и з н а ч а є т ь с я місце з н а х о д ж е н н я даних, над я к и м и в и к о н у є т ь с я опера­
ція, задана кодом операції. Д а н и х м о ж е бути декілька, і, крім того, в о н и м о ж у т ь знахо­
дитися в основній пам'яті, в регістрах п р о ц е с о р а чи в з а п а м ' я т о в у ю ч и х елементах і н ш и х
вузлів комп'ютера. Тому і ф о р м а т и к о м а н д в ц и х в и п а д к а х будуть р і з н и м и . М о ж н а здій­
снити класифікацію архітектури к о м п ' ю т е р а за т и п о м а д р е с о в а н о ї пам'яті. З а л е ж н о від
того, я к и й тип п а м ' я т і адресується, р о з р і з н я ю т ь н а с т у п н і т и п и архітектур комп'ютера:
стекова, а к у м у л я т о р н а , на основі регістрів з а г а л ь н о г о к о р и с т у в а н н я .
При р о з р о б ц і к о м п ' ю т е р а необхідно враховувати багато о с о б л и в о с т е й в и б о р у систе­
ми команд. З одного боку, система к о м а н д п о в и н н а бути ф у н к ц і о н а л ь н о п о в н о ю , тобто
комп'ютер повинен з а б е з п е ч у в а т и в и к о н а н н я всіх з а д а н и х ф у н к ц і й . З і н ш о г о боку, сис­
тема команд має бути о р т о г о н а л ь н о ю , т о б т о не п о в и н н а бути н а д л и ш к о в о ю . Для нового
комп'ютера, який є р о з ш и р е н н я м відповідної серії, першочерговою є сумісність - п р о г р а м и ,
які в и к о н у ю т ь с я на о д н о м у комп'ютері, п о в и н н і в и к о н у в а т и с ь і на і н ш о м у комп'ютері.
Є багато рівнів повноти системи команд. Т е о р е т и ч н о система к о м а н д к о м п ' ю т е р а м о ж е
включати л и ш е одну команду. О д н а к п р о г р а м и на базі п р о с т и х о п е р а ц і й є д у ж е с к л а д н и ­
ми. Існує ф у н д а м е н т а л ь н и й з в ' я з о к м і ж п р о с т о т о ю к о м п ' ю т е р а і складністю п р о г р а м и . В
реальних комп'ютерах застосовується система команд, до складу якої входить ш и р о к и й
спектр команд о б р о б к и даних, п е р е м і щ е н н я даних, передачі к е р у в а н н я та в в е д е н н я -
зо

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


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

1.3.2. Архітектурні принципи Джона фон Неймана


О п и с а н а в 1946 році Д ж о н о м ф о н Н е й м а н о м архітектура комп'ютера дістала назву
його імені. О с к і л ь к и це був о п и с р е а л і з о в а н о г о П р е с п е р о м Екертом та Д ж о н о м Моучлі
у н і в е р с а л ь н о г о к о м п ' ю т е р а Е К І А С , с т в о р е н о г о в П р и н с т о н с ь к о м у університеті, часом її
іще н а з и в а ю т ь п р и н с т о н с ь к о ю . Головні о с о б л и в о с т і архітектури к о м п ' ю т е р а Д ж о н а фон
Неймана:
> І н ф о р м а ц і я в комп'ютері ділиться на к о м а н д и і дані.
> К о м а н д и в к а з у ю т ь комп'ютеру, які дії і над я к и м и о п е р а н д а м и виконувати.
> Послідовність к о м а н д , за я к о ю в и к о н у є т ь с я а л г о р и т м в и р і ш е н н я задачі, назива­
ють п р о г р а м о ю .
> Весь набір в и к о н у в а н и х к о м п ' ю т е р о м к о м а н д н а з и в а ю т ь системою команд ком­
п'ютера.
> Дані - це числа і закодовані с и м в о л и , які в и к о р и с т о в у ю т ь с я командами як операн-
ди. Одні к о м а н д и для і н ш и х т а к о ж м о ж у т ь бути о п е р а н д а м и .
> К о м а н д и і дані п р е д с т а в л е н о д в і й к о в и м кодом.
> Н е м а є відмінностей в представленні к о м а н д і даних. Н а п р и к л а д , двійкове число
100011011100 м о ж е бути як к о м а н д о ю , так і д а н и м .
> К о м а н д и і дані зберігаються в одній пам'яті.
> К о м а н д и і дані зберігаються в пам'яті за в і д п о в і д н и м и адресами.
> П а м ' я т ь м а є довільну адресацію, т о б т о в к о ж н о м у такті м о ж н а звернутися до до­
вільної її комірки.
> П а м ' я т ь є лінійною. її адресу кодують д в і й к о в и м кодом, п о ч и н а ю ч и від молодшої,
всі р о з р я д и якої рівні нулю (00...0), до старшої, всі р о з р я д и якої рівні одиниці (11..'. 1).
В основу р о б о т и цього к о м п ' ю т е р а п о к л а д е н о п р и н ц и п п р о г р а м н о г о керування. Тоб­
то ф у н к ц і о н у в а н н я ц ь о г о к о м п ' ю т е р а здійснюється п о т а к т о в о за вказівкою команд про-
31

грами. Програма р а з о м з д а н и м и , які підлягають о б р о б ц і , спочатку з а п и с у є т ь с я до осно­


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

1.3.3. Ненейманівські архітектури комп'ютерів


До цього часу більшість у н і в е р с а л ь н и х комп'ютерів будують за п р и н ц и п а м и архі­
тектури Джона ф о н Неймана. Але недоліки цієї архітектури, п о в ' я з а н і з з а к л а д е н и м в
ній послідовним х а р а к т е р о м організації обчислень, с т а в л я т ь п е р е п о н и в п о ш у к у шляхів
побудови ш в и д к и х комп'ютерних систем. Тому крім архітектури Д ж о н а ф о н Н е й м а н а за
час існування комп'ютерної техніки було с т в о р е н о цілий р я д і н ш и х архітектур. До них,
зокрема, належать гарвардська архітектура, асоціативна м а ш и н а , м а ш и н а п о т о к і в даних,
редукційна машина. Було з а п р о п о н о в а н о п о к л а с т и в якості о б ч и с л ю в а л ь н о ї п а р а д и г м и
нейронні мережі, в я к и х в и к о р и с т а н а ідея з моделей м о з к у та генетичні а л г о р и т м и , в
яких застосовані ідеї з біології та еволюції архітектури к о м п ' ю т е р н и х мереж. О с т а н н і м
часом багато уваги приділяється к в а н т о в и м к о м п ' ю т е р а м , елементи я к и х п р а ц ю ю т ь за
законами квантової механіки, біологічним к о м п ' ю т е р а м , а т а к о ж п а р а л е л ь н и м к о м п ' ю ­
терам, оскільки п р а к т и ч н о всі сьогоднішні к о м п ' ю т е р и є п а р а л е л ь н и м и .
Коротко виділимо основні риси деяких з н а з в а н и х архітектур.
Гарвардська архітектура в п е р ш е була р е а л і з о в а н а Ховардом А й к е н о м в комп'ютері
Марк-1 в Гарварді. Вона передбачає р о з д і л е н н я пам'яті на п а м ' я т ь д а н и х і п а м ' я т ь ко­
манд. Тим самим розділяються шини передачі керуючої і оброблюваної інформації (рис. 1.9).
При цьому підвищується п р о д у к т и в н і с т ь к о м п ' ю т е р а за рахунок с у м і щ е н н я в часі пере­
силання та о б р о б к и даних і команд.

Пам'ять
команд

Процесор

Пам'ять
даних

Рис. 1.9. Ядро комп'ютера гарвардської архітектури, утворене процесором


та пам'яттю команд і даних
32

Необхідність в и к о р и с т а н н я гарвардської архітектури м о ж н а п о я с н и т и так. Ядро


к о м п ' ю т е р а Д ж о н а ф о н Н е й м а н а с к л а д а є т ь с я з п р о ц е с о р а та основної пам'яті. Бажано,
аби о б и д в і к о м п о н е н т и я д р а не п р и г а л ь м о в у в а л и одна одну, т о б т о п р а ц ю в а л и із рівною
ш в и д к о д і є ю . На п р а к т и ц і вузол п а м ' я т і є з н а ч н о (на порядок) п о в і л ь н і ш и м від процесора
і цей р о з р и в у швидкодії з п р о г р е с о м і н т е г р а л ь н и х технологій л и ш е з р о с т а є . З м е н ш и т и
р о з р и в м о ж н а с т р у к т у р н и м и м е т о д а м и , з б і л ь ш у ю ч и р о з р я д н і с т ь і н ф о р м а ц і й н о г о слова
пам'яті. Саме цей підхід реалізує гарвардська архітектура з д в о м а з а п а м ' я т о в у в а л ь н и ­
м и п р и с т р о я м и . З р о з у м і л о , щ о т у т п а р а л е л ь н о в и к о н у ю т ь с я операції в и б и р а н н я команд
п р о г р а м и , з одного боку, а з другого - в и б и р а н н я та з а п и с кодів д а н и х і результатів об­
числень.
Дуальна пристонсько-гарвардська архітектура. Швидкі к о м п ' ю т е р и гарвардської
архітектури є с к л а д н і ш и м и щодо п р о г р а м у в а н н я п о р і в н я н о з к о м п ' ю т е р а м и принстон­
ської а р х і т е к т у р и . З р о з у м і л о , що б а ж а н о с т в о р и т и комп'ютер з дуальною архітектурою,
я к а в о д н о ч а с з а п о з и ч у є нову якість - ш в и д к о д і ю від гарвардської архітектури та стан­
д а р т н у п а р а д и г м у р о з р о б к и п р о г р а м від п р и н с т о н с ь к о ї архітектури. З л и т т я двох архі­
т е к т у р в и к о н у ю т ь на рівні кеш пам'яті ш л я х о м її поділу на кеш даних та кеш команд
(рис. 1.10). З л и т т я м архітектур п р о г р а м і с т у н а д а н о зручність п р о г р а м н и х технологій
п р и н с т о н с ь к о ї архітектури, а з б о к у п р о ц е с о р а р е а л і з о в а н о гарвардську архітектуру, в
результаті чого він з н а ч н о м е н ш е п р и г а л ь м о в у є т ь с я з б о к у основної пам'яті.

Кеш пам'ять
команд
Основна
Кеш пам'ять
пам'ять даних Процесор
другого рівня
і команд
Кеш пам'ять
даних

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

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


це є в м а ш и н і Д ж о н а ф о н Н е й м а н а , а відповідно до з н а ч е н н я ц и х даних або їх частин. Ба­
з о в и м и т у т є операції п о ш у к у і п о р і в н я н н я . О с н о в о ю асоціативної архітектури є асоціа­
т и в н а п а м ' я т ь , я к а з а б е з п е ч у є о д н о ч а с н и й д о с т у п до багатьох даних, в я к и х співпадають
з н а ч е н н я відповідних р о з р я д і в . Тим с а м и м за рахунок високої паралельності о б р о б к и
досягається висока п р о д у к т и в н і с т ь на класі операцій, для в и к о н а н н я я к и х ця м а ш и н а
є е ф е к т и в н о ю (зокрема, логічні операції, операції п о ш у к у та с о р т у в а н н я ) . Асоціативна
м а ш и н а є с к л а д о в о ю п р а к т и ч н о к о ж н о г о сучасного комп'ютера.
М а ш и н а потоків даних. К е р у в а н н я о б ч и с л ю в а л ь н и м п р о ц е с о м в машині потоків
д а н и х здійснюється д а н и м и за їх готовністю до о б р о б к и . К о ж н е дане в такій машині
м а є спеціальні о з н а к и . За ц и м и о з н а к а м и п р и с т р і й к е р у в а н н я знаходить дані, які готові
до о б р о б к и , і передає їх в А Л П для в и к о н а н н я відповідних операцій. Тим самим т у т за
рахунок м о ж л и в о г о п а р а л е л ь н о г о аналізу та о б р о б к и даних досягається г р а н и ч н о ви-
33

сока продуктивність. П р и н ц и п и м а ш и н и потоків д а н и х в и к о р и с т о в у ю т ь с я в багатьох


сучасних в и с о к о п р о д у к т и в н и х к о м п ' ю т е р а х .
Паралельні комп'ютерні системи. П е р ш і паралельні к о м п ' ю т е р н і системи, до скла­
ду я к и х входило л и ш е два п р о ц е с о р и , були побудовані в кінці 60-х р о к і в м и н у л о г о сто­
ліття. В 70-х роках такі системи м а л и в с в о є м у складі до 64-х п р о ц е с о р і в , в 80-х роках
- до 1000, а в кінці 90-х років ф і р м а I B M а н о н с у в а л а к о н с т р у к ц і ю с у п е р к о м п ' ю т е р а з
паралельною архітектурою, я к и й в к л ю ч а в п о н а д м і л ь й о н п р о ц е с о р і в і на д а н и й час є
н а й п р о д у к т и в н і ш и м у світі. П а р а л е л ь н а о б р о б к а і н ф о р м а ц і ї є к л ю ч о в и м н а п р я м к о м
побудови в и с о к о п р о д у к т и в н и х к о м п ' ю т е р н и х систем. О д н а к і паралельні к о м п ' ю т е р н і
системи м а ю т ь о б м е ж е н н я . П о - п е р ш е , зі з б і л ь ш е н н я м кількості п р о ц е с о р і в у с к л а д н ю ­
ється задача р о з п о д і л у з а в д а н ь м і ж п р о ц е с о р а м и . Для ї ї в и р і ш е н н я в и к о р и с т о в у ю т ь с я
додаткові п р о ц е с о р и , кількість я к и х м о ж е з н а ч н о п е р е в и щ у в а т и кількість п р о ц е с о р і в ,
зайнятих безпосередньо в и к о н а н н я м алгоритму. По-друге, послідовна п р и р о д а багатьох
алгоритмів о б м е ж у є п р и с к о р е н н я , я к о г о м о ж н а досягти, в и к о р и с т о в у ю ч и б а г а т о п р о ц е ­
сорну організацію.

1.4. Типи сучасних комп'ютерів


Аналіз сфер в и к о р и с т а н н я к о м п ' ю т е р і в показує, щ о м о ж н а в и д і л и т и два о с н о в н и х
н а п р я м к и їх в и к о р и с т а н н я . П е р ш и й н а п р я м о к - це п і д с и л е н н я і н т е л е к т у а л ь н и х м о ж л и ­
востей л ю д и н и в досить ш и р о к о м у р о з у м і н н і цього п о н я т т я . М а є т ь с я на увазі п р и с к о р е н ­
ня обчислень, зберігання в е л и к и х о б ' є м і в інформації, ш в и д к и й п о ш у к та в і д о б р а ж е н н я
необхідної інформації і т. д. К о м п ' ю т е р и цього н а п р я м к у п о в и н н і мати в е л и к у ємність
пам'яті, п о т у ж н е п р о г р а м н е з а б е з п е ч е н н я , р о з в и н у т і з а с о б и взаємодії з людиною.
Другий н а п р я м о к - це в и к о р и с т а н н я к о м п ' ю т е р а як елемента електротехнічної сис­
теми, н а п р и к л а д , системи к е р у в а н н я , і н ф о р м а ц і й н о - в и м і р ю в а л ь н о ї системи, системи
передачі д а н и х і т. д. На рис. 1.11 п о к а з а н о п р и к л а д в и к о р и с т а н н я к о м п ' ю т е р а в складі
системи к е р у в а н н я . Тут п а р а м е т р и о б ' є к т а к е р у в а н н я з н і м а ю т ь с я д а в а ч а м и , п е р е т в о ­
рюються в ц и ф р о в у ф о р м у за д о п о м о г о ю а н а л о г о - ц и ф р о в и х п е р е т в о р ю в а ч і в А Ц П та
подаються в к о м п ' ю т е р . В комп'ютері з д і й с н ю є т ь с я оцінка с т а н у о б ' є к т а к е р у в а н н я та
в и р о б л я є т ь с я послідовність к е р у ю ч и х кодів, які в ц и ф р о - а н а л о г о в и х п е р е т в о р ю в а ч а х
Ц А П п е р е т в о р ю ю т ь с я в аналогову ф о р м у та подаються на о р г а н и к е р у в а н н я з метою
забезпечення у т р и м а н н я п а р а м е т р і в о б ' є к т а к е р у в а н н я в з а д а н и х межах.

Органи Об'єкт
керування керування

>•

Комп'ютер

Рис. 1.11. Комп'ютер в системі керування

ЗЗам. 371.
34

О с н о в н а в и м о г а до к о м п ' ю т е р і в даного н а п р я м к у - з а б е з п е ч е н н я необхідного часу


реакції на події в системі, п р о в е д е н н я о б р о б к и вхідних д а н и х в темпі їх п о с т у п л е н н я ,
т о б т о в р е а л ь н о м у м а с ш т а б і часу, і видача результатів відповідно до часових вимог елек­
тротехнічної системи. К о м п ' ю т е р и ц ь о г о н а п р я м к у п о в и н н і мати швидкісні зовнішні ін­
т е р ф е й с и , володіти в и с о к о ю п р о д у к т и в н і с т ю та надійністю р о б о т и . Часто ці комп'ютери
є в б у д о в а н и м и в м о б і л ь н і з а с о б и , т о м у додатково в и м а г а є т ь с я , щ о б в о н и м а л и малі габа­
р и т и т а н и з ь к у с п о ж и в а н у п о т у ж н і с т ь . Вбудовані к о м п ' ю т е р и ш и р о к о в и к о р и с т о в у ю т ь ­
ся в п о б у т о в і й е л е к т р о н н і й а п а р а т у р і , з о к р е м а в відео та аудіо апаратурі, фотоапаратах,
іграшках, п о б у т о в и х п р и с т р о я х , м о б і л ь н и х телефонах і т.д.
З а л е ж н о від с ф е р и з а с т о с у в а н н я та технічних х а р а к т е р и с т и к , в п е р ш у чергу габари­
тів, п р о д у к т и в н о с т і , є м н о с т і п а м ' я т і та ціни р о з р і з н я ю т ь н а с т у п н і т и п и комп'ютерів:
> п е р с о н а л ь н і к о м п ' ю т е р и (personal computers) - к о м п ' ю т е р и , орієнтовані на корис­
т у в а н н я однією о с о б о ю ;
> р о б о ч і станції (workstations) - к о м п ' ю т е р и , о р і є н т о в а н і на в и р і ш е н н я інженерних
задач, в п е р ш у чергу в складі л о к а л ь н и х к о м п ' ю т е р н и х м е р е ж ;
> багатотермінальні системи - набір стандартних терміналів, підключених до сервера;
> сервери - ц е н т р а л ь н і к о м п ' ю т е р и для п о б у д о в и і н ф о р м а ц і й н и х систем;
> м е й н ф р е й м и (mainframes) - великі універсальні комп'ютерні системи;
> кластерні к о м п ' ю т е р н і системи - о б ' є д н а н н я комп'ютерів, що с п р и й м а є т ь с я опе­
р а ц і й н о ю системою, с и с т е м н и м п р о г р а м н и м з а б е з п е ч е н н я м , п р и к л а д н и м и п р о г р а м а м и
і к о р и с т у в а ч а м и як є д и н е ціле;
> с у п е р к о м п ' ю т е р и - н а й п о т у ж н і ш і на д а н и й час к о м п ' ю т е р и ;
> м і к р о к о н т р о л е р и - к о м п ' ю т е р и на кристалі, призначені для к е р у в а н н я електрон­
ними пристроями.
> спеціалізовані к о м п ' ю т е р и . Вони о р і є н т о в а н і на в и р і ш е н н я задач, котрі н е м о ж л и ­
в о або недоцільно в и к о н у в а т и н а у н і в е р с а л ь н и х комп'ютерах.
Розглянемо названі комп'ютери детальніше.

1.4.1. Персональні комп'ютери


П е р с о н а л ь н і к о м п ' ю т е р и (ПК) з ' я в и л и с я в результаті еволюції мінікомп'ютерів при
переході елементної б а з и з м а л и м і середнім ступенем інтеграції на великі і надвеликі ін­
тегральні схеми. ПК, з а в д я к и н и з ь к і й вартості, д у ж е ш в и д к о з а в о ю в а л и тверді позиції на
к о м п ' ю т е р н о м у р и н к у і с т в о р и л и п е р е д у м о в и для р о з р о б к и нових п р о г р а м н и х засобів,
що о р і є н т у в а л и с я на к і н ц е в о г о к о р и с т у в а ч а . Це, передусім, д р у ж н і по відношенню до
к о р и с т у в а ч а і н т е р ф е й с и , а т а к о ж п р о б л е м н о - о р і є н т о в а н і середовища і інструментальні
з а с о б и для а в т о м а т и з а ц і ї р о з р о б к и п р и к л а д н и х п р о г р а м .
П е р с о н а л ь н і к о м п ' ю т е р и к л а с и ф і к у ю т ь с я за їх р о з м і р а м и та к о н с т р у к т и в н и м вико­
нанням наступним чином:
> Настільні к о м п ' ю т е р и (desktop computers). До складу настільного комп'ютера вхо­
д и т ь с и с т е м н и й блок (в я к о м у р о з м і щ е н а м а т е р и н с ь к а плата, ц е н т р а л ь н и й процесор,
основна п а м ' я т ь , карта р о з ш и р е н н я , блок ж и в л е н н я і т. д.), дисплей, клавіатура, мишка.
В с и с т е м н и й блок т а к о ж вбудовані д р а й в е р о п т и ч н о г о д и с к у і з о в н і ш н я дискова пам'ять.
Настільні к о м п ' ю т е р и призначені для офісного в и к о р и с т а н н я .
> Л а п т о п и чи н о у т б у к и (laptop or notebooks). Це б л и з ь к і за х а р а к т е р и с т и к а м и до на­
стільного ПК, але к о н с т р у к т и в н о в и к о н а н і в п р и д а т н о м у для перенесення виконанні.
35

> П е р с о н а л ь н і ц и ф р о в і а с и с т е н т и (Personal digital assistants). Це к и ш е н ь к о в і П К ,


спеціально створені як п е р с о н а л ь н і а с и с т е н т и л ю д и н и . Вони н а д а ю т ь н а с т у п н и й сер­
віс: годинник, комп'ютерні ігри, д о с т у п до м е р е ж і Інтернет, е л е к т р о н н а п о ш т а , з а п и с н а
книжка, адресна к н и ж к а , м о б і л ь н и й телефон, медіа п л е є р та інше.
> С м а р т ф о н и . Це м о б і л ь н і т е л е ф о н и , які м а ю т ь в б у д о в а н у о п е р а ц і й н у систему та
м о ж л и в о с т і в и щ е о п и с а н и х п е р с о н а л ь н и х ц и ф р о в и х асистентів.
> Портативні комп'ютери (Portable computers). Це ПК т и п у настільних, але в и к о н а н і в
придатному для перенесення та р о б о т и в не офісних у м о в а х к о н с т р у к т и в н о м у виконанні.
> П е р е н о с и м і к о м п ' ю т е р и (Wearable computers). Це к о м п ' ю т е р и , які надають і н ф о р ­
маційні послуги людині під час її р у х у в н а в к о л и ш н ь о м у середовищі. До п е р е н о с и м и х
П К належать, зокрема, к о м п ' ю т е р и для м о н і т о р и н г у стану л ю д и н и .
На рис. 1.12 наведено з о в н і ш н і й в и г л я д р я д у серійних п е р с о н а л ь н и х комп'ютерів:
персональний ц и ф р о в и й асистент pulmone Tursten Т5 (рис. 1.12а), мобільний ПК ф р а н ­
цузької армії (рис. 1.12b), переносимий комп'ютер V A I O V G N - U X 5 0 фірми Sony (рис. 1.12с),
п л а н ш е т н и й ПК ф і р м и Hewlett Pascard (pHC.1.12d).

а ь с сі

Рис. 1.12. Зовнішній вигляд ряду серійних персональних комп'ютерів

П о т р і б н о відзначити, що н а з в а н і в и щ е т и п и п е р с о н а л ь н и х к о м п ' ю т е р і в в д а н и й час


а к т и в н о р о з в и в а ю т ь с я та в д о с к о н а л ю ю т ь с я , т о м у як термінологія так і с ф е р а їх з а с т о с у ­
в а н н я ще не є чітко в с т а н о в л е н и м и .
В якості п р и к л а д у р о з г л я н е м о з н а ч е н н я ха­
рактеристик реального персонального комп'ю­
тера. На рис. 1.13 н а в е д е н о з о в н і ш н і й вигляд, а в
табл. 1.1 технічні х а р а к т е р и с т и к и , взяті з однієї
із т и п о в и х р е к л а м комп'ютера, а саме м у л ь т и ­
медійного н о у т б у к а V A I O A R U RS. З р о з у м і л о ,
що без з н а н н я наведеної в р е к л а м і термінології
в а ж к о в и б р а т и та к у п и т и к о м п ' ю т е р з п о т р і б н и ­
ми характеристиками.

Рис. 1.13. Зовнішній вигляд комп'ютера


SonyVAIOARllRS
36

Таблиця 1.1
Intel Centrino Core Duo T2500: два ядра; тактова частота 2000 МГц;
Процесор
FSB 667 МГц
Пам'ять Встановлено 1024 Мбайтів пам'яті D D R 2-533
Кеш пам'ять 2х32КВ LI cache, 2048КБ L2 cache

Два вінчестери ємністю по 100 ГБ кожний. Швидкість обертання


Ж о р с т к и й диск
5400 об/хв. 8 МБ cache
3 порти USB 2.0; по одному порту: IEEE 1394 (i.LINK, FireWire);
IrDA (інфрачервоний порт); P C M C I A Type II; ExpressCard|54; Se­
cure Digital ( S D / M M C ) ; Memory Stick (MS/MS Pro/MS Duo/MS Pro
Порти введення- Duo) - адаптер до карт пам'яті; V G A (вихід на зовнішній монітор);
виведення H D M I (High Definition Multimedia Interface); S-Video out (аналоговий
відеовихід); S-Video in (аналоговий відеовхід); RJ-11 (модем); RJ-45
(мережа); оптичний S/PDIF; вихід на навушники; лінійний вхід; вхід
для мікрофона

Адаптер локальної мережі 10/100 Мбіт/с; Адаптер бездротової


Комунікації
мережі 802.11 a/b/g; Модуль Bluetooth 2.0 + EDR; Модем V.90, 56k
Діагональ 17 дюймів. Формат 16:9. Роздільна здатність W U X G A (1920
Екран
X 1200). Технологія X-black. Багатошарове антиблікове покриття
Відео система N V I D I A GoForce Go 7600 GT. 256 МБ власної відеопам'яті

Оптичний привід для двошарових дисків Blu-ray Disc. Запис дисків


Оптичний привід
BD-R/BD-RE
Аудіо Intel High Definition Audio. Вбудовані стерео динаміки та мікрофон
Пристрої введення Клавіатура. Сенсорна панель (touchpad)
Додаткові пристрої Вбудовані ТВ-тюнер та веб-камера V G A (640x480)

Літій-іонна батарея (VGP-BPS2C). Час автономної р о б о т и до


Електроживлення
120 хвилин
Розміри 416x299,5x33,5 мм
Вага 3,8 кг
Гарантія 12 місяців
Операційна система Microsoft Windows ХР Media Center Edition
Ціна $3000

Як б а ч и м о , х а р а к т е р и с т и к и ф у н к ц і о н а л ь н и х вузлів к о м п ' ю т е р а оцінюються в міль­


йонах, мільярдах, т р и л ь й о н а х чи т р и л ь я р д а х д е я к и х о д и н и ц ь , або в їх мільйонних, мі­
л ь я р д н и х , т р и л ь й о н н и х т а т р и л ь я р д н и х частках. Для с п р о щ е н н я з а п и с у ц и х характерис­
т и к в и к о р и с т о в у ю т ь с я відповідні префікси. В таблиці 1.2 наведено префікси до о д и н и ц ь
в и м і р ю в а н н я в е л и к о р о з м і р н и х та м а л о р о з м і р н и х х а р а к т е р и с т и к ф у н к ц і о н а л ь н и х вузлів
комп'ютера кирилицею та латинськими буквами.
37

Таблиця 1.2
Позна­ Назва Позна­ Значення префікса, Близьке значення,
Назва
чення на чення виражене через виражене через
префікса
префікса латині на латині степінь двох степінь десяти
Великорозмірні характеристики
Кіло К Kilo К 2 ю 1 тисяча = 10 3

20
Мета М Mega М 2
1 мільйон = 10 6

зо
Гіга Г Giga G 2
1 мільярд = 10 9

40
Тер а т Тега Т 2
1 трильйон = 10 12

50
Пета п Peta Р 2
1 трильярд = 10 і5

Малорозмірні характеристики
-іо
Мілі м Milli m 2
1 тисячна = 1 0 °
-20
Мікро мк Micro I і 2
1 мільйонна = 10 6

Нано н Nano п 2 - І О
1 мільярдна = 10 9

Піко п Pico 2-40 1 трильйонна = 1 0 12

Р
-50
Фенто ф Fento f 2
1 трильярдна = 1 0 15

Наведені в таблиці 1.2 п р е ф і к с и в и к о р и с т о в у ю т ь с я для в и р а ж е н н я відповідної д о ­


датної або від'ємної степені 10. Як буде в и д н о далі, в к о м п ' ю т е р а х , які п р а ц ю ю т ь в двій­
ковій системі ч и с л е н н я , значна ч а с т и н а х а р а к т е р и с т и к в и м і р ю є т ь с я в о д и н и ц я х , к р а т н и х
степені 2. Але оскільки люди вже звикли до цих префіксів, їх же використовують і для вира­
ження відповідної степені 2 чисел, близьких степені 10. Наприклад, ємність 1 КБ (кілобайт)
означає 1024 байти, оскільки з н а ч е н н я 210 - 1024 є б л и з ь к и м до 1000. В о с т а н н ь о м у
стовпчику таблиці 1.2 наведено з н а ч е н н я степені 10 для б л и з ь к и х з н а ч е н ь степені 2.
Разом з т и м , необхідно з а у в а ж и т и , що д и с к о в а п а м ' я т ь є м н і с т ю 1 ГБ м а є 1 м і л ь я р д
байтів, а не 230 ( п р и б л и з н о 1.7 м і л ь я р д а ) . Тому п о т р і б н о ч и т а т и і н с т р у к ц і ю к о р и с т у в а ч а
для того, щ о б бути в п е в н е н и м в т о ч н о м у значенні з а п и с у 1К, Ї М , чи 1Г в к о ж н о м у кон­
к р е т н о м у випадку.
В якості п р о ц е с о р а к о м п ' ю т е р а Sony V A I O A R U R S в и к о р и с т а н о п р о ц е с о р Intel
Centrino Core Duo T2500. О с к і л ь к и п р о ц е с о р є о с н о в н и м е л е м е н т о м комп'ютера, його
п р о д у к т и в н і с т ь в значній мірі в и з н а ч а є п р о д у к т и в н і с т ь в с ь о г о к о м п ' ю т е р а . П р и н ц и п и
побудови та організації р о б о т и п р о ц е с о р а та його ф у н к ц і о н а л ь н и х вузлів будуть р о з ­
глянуті в розділах 4-8 книги. Робота п р о ц е с о р а с и н х р о н і з у є т ь с я і м п у л ь с а м и , які генерує
блок синхронізації к о м п ' ю т е р а та п о с и л а є їх до всіх й о г о о с н о в н и х к о м п о н е н т і в . Кіль­
кість в и р о б л е н и х ц и м блоком імпульсів за 1 секунду є його ч а с т о т о ю , я к а в и м і р ю є т ь с я в
герцах. Сучасні к о м п ' ю т е р и п р а ц ю ю т ь на мегагерцових та гігагерцових частотах, т о б т о
їх блоки синхронізації генерують сотні м і л ь й о н і в або й м і л ь я р д и імпульсів за секунду.
П р о ц е с о р комп'ютера, п р е д с т а в л е н о г о на рекламі, ф у н к ц і о н у є на частоті 2 ГГц. О д н а к
це не о б о в ' я з к о в о означає, що він з д а т н и й в и к о н у в а т и 2 м і л ь я р д и к о м а н д за секунду,
або, що еквівалентно, що к о ж н а й о г о к о м а н д а в и к о н у є т ь с я за 0,5 н а н о с е к у н д и . Як буде
38

п о к а з а н о в розділі 2, к о ж н а к о м а н д а к о м п ' ю т е р а в и м а г а є фіксованої кількості тактів для


свого в и к о н а н н я , п р и ч о м у деякі к о м а н д и в и к о н у ю т ь с я за один такт, але більшість ко­
м а н д в и к о н у ю т ь с я за декілька тактів.
В д р у г о м у р я д к у р е к л а м и р о з м і щ е н о "1024 М б а й т і в пам'яті D D R 2-533)". Це основна
п а м ' я т ь . Ч и с л о 533 вказує ч а с т о т у з ч и т у в а н н я д а н и х з цієї пам'яті на системну шину,
по якій п р о в о д и т ь с я обмін і н ф о р м а ц і є ю в комп'ютері. Тут частота в и м і р ю є т ь с я в МГц.
О с н о в н а п а м ' я т ь має є м н і с т ь 1024 мегабайти (МБ). П и т а н н я п р о ф о р м а т и представлен­
ня д а н и х в к о м п ' ю т е р і будуть р о з г л я н у т і в розділі 3, а п и т а н н я побудови та організації
р о б о т и п а м ' я т і - в розділі 9. Д о д а т к о в о до є м н о с т і пам'яті р е к л а м а вказує і її тип D D R ,
с к о р о ч е н н я від dynamic random access memory ( д и н а м і ч н а п а м ' я т ь з д о в і л ь н и м досту­
п о м ) , яка п і д т р и м у є д в о к а н а л ь н и й р е ж и м .
Н а с т у п н и й р я д о к в р е к л а м і "2x32КБ LI cache, 2048КБ L2 cache" т а к о ж описує тип
пам'яті. Це кеш п а м ' я т ь , яка з а б е з п е ч у є ш в и д к и й д о с т у п п р о ц е с о р а до основної пам'яті.
П р е д с т а в л е н и й на р е к л а м і к о м п ' ю т е р м а є два рівні кеш пам'яті. Кеш п а м ' я т ь першого
р і в н я (LI) є ш в и д к о ю п а м ' я т т ю малої ємності, я к а в б у д о в а н а в кристал процесора і до­
з в о л я є п р и с к о р и т и д о с т у п до часто в и к о р и с т о в у в а н и х д а н и х і команд. Кеш пам'ять дру­
гого р і в н я (L2) є н а б о р о м ш в и д к и х м і к р о с х е м п а м ' я т і , р о з м і щ е н и х між п р о ц е с о р о м і
о с н о в н о ю п а м ' я т т ю . П р и ц ь о м у кеш п а м ' я т ь має ємність, що в и м і р ю є т ь с я в кілобайтах
(КБ), т о б т о з н а ч н о меншу, а н і ж є м н і с т ь основної пам'яті. В д а н о м у в и п а д к у кеш пам'ять
п е р ш о г о рівня розділена на кеш п а м ' я т ь д а н и х і кеш п а м ' я т ь к о м а н д ємністю по 32 КБ,
кеш п а м ' я т ь другого р і в н я м а є є м н і с т ь 2048 КБ.
Р е к л а м о в а н и й к о м п ' ю т е р м а є т а к о ж з о в н і ш н ю дискову п а м ' я т ь ємністю 2x100 ГБ,
я к а м а є ш в и д к і с т ь о б е р т а н н я дисків 5400 обертів за хвилину. Крім того, ця пам'ять має
б у ф е р є м н і с т ю 8 М Б . Ш в и д к і с т ь о б е р т а н н я є л и ш е о д н и м з в и з н а ч а л ь н и х факторів за­
гальної п р о д у к т и в н о с т і диску. В а ж л и в и м и є т а к о ж п р и н ц и п и його з ' є д н а н н я з іншими
елементами комп'ютера, т о б т о й о г о інтерфейс. В р е к л а м о в а н о м у комп'ютері інтерфейс
д и с к у м а є н а з в у E I D E , що є с к о р о ч е н н я м від enhanced integrated drive electronics (покра­
щ е н а електроніка і н т е г р о в а н о г о дисководу). І н т е р ф е й с E I D E м а є спеціальні вузли, які
д о з в о л я ю т ь п і д в и щ и т и ш в и д к і с т ь обміну.
Далі в р е к л а м і р о з м і щ е н і х а р а к т е р и с т и к и п р и с т р о ї в в в е д е н н я - в и в е д е н н я та кому­
нікацій, які будуть д е т а л ь н о р о з г л я н у т і в розділі 10. Тут п о к а з а н о З USB порти, один
ш в и д к і с н и й п о с л і д о в н и й порт, о д и н і н ф р а ч е р в о н и й порт, адаптери для безпровідного
з в ' я з к у та багато і н ш и х портів. Ч е р е з ці п о р т и і н ф о р м а ц і я п о с т у п а є в комп'ютер та з
к о м п ' ю т е р а . U S B (universal serial bus) п о р т є п о п у л я р н о ю з о в н і ш н ь о ю ш и н о ю , яка під­
т р и м у є р е ж и м и Plug-and-Play (тобто м о ж л и в і с т ь а в т о м а т и ч н о ї конфігурації пристрою)
та hot plugging ( м о ж л и в і с т ь п і д к л ю ч и т и та в і д к л ю ч и т и п р и с т р і й під час р о б о т и комп'ю­
тера).
Т а к о ж в р е к л а м і є і н ф о р м а ц і я п р о м о н і т о р . Він м а є н а с т у п н і х а р а к т е р и с т и к и : діаго­
н а л ь рівна 17 дюймів, ф о р м а т 16:9, р о з д і л ь н а здатність W U X G A (1920 х 1200), технологія
X-black, б а г а т о ш а р о в е антиблікове п о к р и т т я . Х а р а к т е р и с т и к и м о н і т о р а в п л и в а ю т ь на
з р у ч н і с т ь взаємодії к о р и с т у в а ч а з к о м п ' ю т е р о м . М о н і т о р з в и с о к о ю роздільною здатніс­
тю з а б е з п е ч у є к р а щ е бачення та якісну графіку.
На р е к л а м і є і інша п о т р і б н а і н ф о р м а ц і я п р о к о м п ' ю т е р , з о к р е м а наведені характе­
р и с т и к и відео та аудіо систем, о п т и ч н о г о п р и в о д у та інше.
39

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


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

Послідовний

Мікросхема Роз'єм жорст- Роз'єм гнучкого Роз'єм живлення


BIOS кого диска диска

Рис. 1.14. Вигляд вузлів комп'ютера

Коли відкрити корпус персонального комп'ютера, м о ж н а п о б а ч и т и в е л и к у кількість


різних елементів. Це, зокрема, блок ж и в л е н н я , я к и й представляє собою м е т а л е в и й корпус
з вбудованим в е н т и л я т о р о м , різні т и п и дискової пам'яті, включаючи накопичувачі на ж о р ­
сткому та гнучкому магнітних дисках, привід C D - R O M / R W чи D V D - R O M / R W . Всі компо­
ненти комп'ютера, включаючи п р о ц е с о р та пам'ять, об'єднує системна плата. На рис. 1.14
показано системну плату Intel D850 з т л у м а ч е н н я м н а й в а ж л и в і ш и х компонентів.
П о р т и в в е д е н н я - в и в е д е н н я зверху плати з а б е з п е ч у ю т ь з в ' я з о к к о м п ' ю т е р а з з о ­
внішніми вузлами т и п у м і к р о ф о н а та і н ш и х з в у к о в и х п р и с т р о ї в , м и ш і , к л а в і а т у р и , з
40

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


слідовний, п а р а л е л ь н и й та U S B п о р т и . К о н т р о л е р в в е д е н н я - в и в е д е н н я , я к и й входить
до складу інших, крім п р о ц е с о р а , п а м ' я т і та відео, м і к р о с х е м системної плати (chipset),
д о з в о л я є всім з ' є д н а н и м п р и с т р о я м ф у н к ц і о н у в а т и без конфліктів. Гнізда (слоти) для
п і д к л ю ч е н н я до ш и н и P C I (Peripheral Component Interconnect) д о з в о л я ю т ь р о з ш и р е н н я
плат, які н а л е ж а т ь до різних п р и с т р о ї в , п і д к л ю ч е н и х до ш и н и P C L Це 32-розрядна ло­
кальна ш и н а для п е р е с и л а н н я д а н и х м і ж п р о ц е с о р о м т а з о в н і ш н і м и п р и с т р о я м и (диски,
відеоадаптер т о щ о ) з ш в и д к і с т ю до 132 Мбіт/с. На м а т е р и н с ь к і й платі р о з т а ш о в у ю т ь
з а з в и ч а й 3-4 гнізда ш и н и P C L С л о т A G P (Accelerated Graphic Port - п р и с к о р е н и й гра­
ф і ч н и й порт) п р и з н а ч е н и й д л я в к л ю ч е н н я графічної к а р т и . Також є два блоки основної
пам'яті та к о н т р о л е р пам'яті. Тут відсутній п р о ц е с о р , я к и й п о в и н е н бути встановлений
в м а т е р и н с ь к у плату, але є гніздо під нього. В н и ж н ь о м у л і в о м у куті р о з м і щ е н а в н у т р і ш ­
н я батарея ж и в л е н н я для з б е р і г а н н я н а с т р о й о к BIOS. Ц я плата м а є т а к о ж два р о з ' є м и
д л я п і д к л ю ч е н н я ж о р с т к о г о диска а б о п р и в о д у C D - R O M / R W ч и D V D - R O M / R W , і один
р о з ' є м д л я п і д к л ю ч е н н я гнучкого диска.
Комп'ютер продається з записаним в постійну пам'ять програмним забезпеченням,
до я к о г о н а л е ж а т ь P O S T (Power-On-Self-Test) та BIOS (Base Input/Output Systems). П р и
включенні к о м п ' ю т е р а в і д б у в а є т ь с я т е с т у в а н н я пам'яті, клавіатури, дисків і деяких ін­
ш и х к о м п о н е н т і в к о м п ' ю т е р а . Після ц ь о г о в и к л и к а є т ь с я о п е р а ц і й н а система, я к а з а в а н ­
тажується та оживляє комп'ютер.

1.4.2. Робочі станції


М і н і к о м п ' ю т е р и с т а л и п р а р о д и ч а м и й і н ш о г о н а п р я м к у р о з в и т к у сучасних 32 та
6 4 - р о з р я д н и х к о м п ' ю т е р і в , щ о с ь о г о д н і відомі я к р о б о ч і станції. П о ч а т к о в а орієнта­
ція р о б о ч и х с т а н ц і й н а п р о ф е с і й н и х к о р и с т у в а ч і в (на в і д м і н у від П К , щ о від п о ч а т к у
були о р і є н т о в а н і н а с п о ж и в а ч а - н е п р о ф е с і о н а л а ) п р и з в е л а д о того, щ о р о б о ч і станції
- це д о б р е з б а л а н с о в а н і к о м п ' ю т е р н і с и с т е м и , які, р а з о м з
високою продуктивністю, характеризуються великою єм­
ністю о с н о в н о ї і з о в н і ш н ь о ї п а м ' я т і , м а ю т ь в и с о к о ш в и д к і с н і
внутрішні магістралі, високоякісну і швидкодіючу графічну
п і д с и с т е м у і р і з н о м а н і т н і п р и с т р о ї в в е д е н н я - в и в е д е н н я . Ця
властивість вигідно відрізняє робочі станції середнього і ви­
сокого к л а с у від ПК і сьогодні. Н а в і т ь н а й п о т у ж н і ш і ПК не
в стані з а д о в о л ь н и т и з р о с т а ю ч і п о т р е б и і н ж е н е р н и х задач
ч е р е з н а я в н і с т ь в їхній а р х і т е к т у р і р я д у в у з ь к и х м і с ц ь .
В якості п р и к л а д у р о з г л я н е м о х а р а к т е р и с т и к и р о б о ч о ї
станції Sun Ultra 45 Workstation ф і р м и Sun Microsystems, з о ­
в н і ш н і й в и г л я д якої н а в е д е н о на рис. 1.15. До її складу вхо­
д я т ь два п р о ц е с о р и U l t r a S P A R C Ші з ч а с т о т о ю 1.6GHz, кеш
п а м ' я т ь другого р і в н я є м н і с т ю 1 M B , Dual Gigabit Ethernet, до
16 GB D D R 1 E C C п а м ' я т ь , д в а г р а ф і ч н и х п р и с к о р ю в а ч і д л я Рис. 1.15. Зовнішній вигляд
д в о в и м і р н о ї та т р и в и м і р н о ї г р а ф і к и . робочої станції Sun Ultra
45 Workstation фірми Sun
Microsystems
41

В и р о б н и к и р о б о ч и х станцій ш в и д к о в і д р е а г у в а л и на п о т р е б у в м а л о в а р т і с н и х моде­
лях для р и н к у к о м е р ц і й н и х з а с т о с у в а н ь . П о т р е б а в високій п о т у ж н о с т і на р о б о ч о м у сто­
лі навела компанії Sun Microsystems і Hewlett-Packard, які є л і д е р а м и на р и н к у р о б о ч и х
станцій, на ідею о р і є н т у в а т и свою п р о д у к ц і ю на комерційні з а с т о с у в а н н я . І хоча з н а ч н а
частина систем ц и х к о м п а н і й все ще о р і є н т о в а н а на технічні та наукові з а с т о с у в а н н я ,
спостерігається б е з п р е ц е д е н т н е з р о с т а н н я п р о д а ж у ї х продукції д л я р о б і т к о м е р ц і й н о г о
застосування, щ о в и м а г а ю т ь все більшої п о т у ж н о с т і для реалізації с к л а д н и х м е р е ж н и х
прикладних систем, в к л ю ч а ю ч и системи мультимедіа.

1.4.3. Багатотермінальні системи


ПК та р о б о ч і станції часто з а с т о с о в у ю т ь с я в я к о с т і д о р о г и х д и с п л е ї в і в ц ь о м у в и ­
падку не повністю в и к о р и с т о в у є т ь с я їх о б ч и с л ю в а л ь н а п о т у ж н і с т ь . Р а з о м з т и м , багато
користувачів терміналів хотіли б п о к р а щ и т и їхні графічні х а р а к т е р и с т и к и та мати м о ж ­
ливість р о б о т и в багатовіконній системі. Ці п р о б л е м и були в и р і ш е н і ш л я х о м с т в о р е н н я
багатотермінальних систем, які є н а б о р о м с т а н д а р т н и х т е р м і н а л і в , п і д к л ю ч е н и х до сер­
вера. Як тільки стали д о с т у п н и м и п о т у ж н і графічні р о б о ч і станції, з ' я в и л а с я т е н д е н ц і я
застосування "підлеглих" терміналів, що в и к о р и с т а ю т ь р о б о ч у с т а н ц і ю в я к о с т і л о к а л ь ­
ного сервера.
Н а к о м п ' ю т е р н о м у р и н к у б а г а т о т е р м і н а л ь н і системи з а й м а ю т ь п р о м і ж н е п о л о ж е н ­
ня між п е р с о н а л ь н и м и к о м п ' ю т е р а м и і р о б о ч и м и с т а н ц і я м и . П о с т а ч а л ь н и к и терміналів
заявляють, що їхні в и р о б и е ф е к т и в н і ш і в в а р т і с н о м у в и р а ж е н н і , н і ж р о б о ч і станції в и ­
сокого ц і н о в о г о класу, і п р о п о н у ю т ь з б і л ь ш е н и й р і в е н ь п р о д у к т и в н о с т і у п о р і в н я н н і з
п е р с о н а л ь н и м и к о м п ' ю т е р а м и , щ о р о б и т ь ц ю технологію д о с т у п н о ю д л я ш и р о к о г о кола
користувачів. Вартість терміналів складає біля п о л о в и н и в а р т о с т і б л и з ь к о г о за к о н ф і ­
гурацією ПК без з о в н і ш н ь о ї п а м ' я т і і п р и б л и з н о ч в е р т ь в а р т о с т і п о в н і с т ю о с н а щ е н о ї
р о б о ч о ї станції.
Типовий т е р м і н а л в к л ю ч а є н а с т у п н і елементи: е к р а н високої р о з д і л ь н о ї здатності;
головний п р о ц е с о р , я к и й п і д т р и м у є д в о п р о ц е с о р н у архітектуру; о к р е м и й г р а ф і ч н и й
співпроцесор, що з а б е з п е ч у є ш в и д ш е м а л ю в а н н я на екрані і п р о к р у ч у в а н н я е к р а н у ; ба­
зові системні п р о г р а м и ; п р о г р а м н е з а б е з п е ч е н н я сервера; л о к а л ь н у п а м ' я т ь д л я д и с п л е ю
т а м е р е ж н о г о інтерфейсу, щ о п і д т р и м у є п р о т о к о л T C P / I P т а інші м е р е ж н і п р о т о к о л и ;
порти для п і д к л ю ч е н н я к л а в і а т у р и і м и ш і .
Термінали в і д р і з н я ю т ь с я від ПК і р о б о ч и х с т а н ц і й не т і л ь к и т и м , що не в и к о н у ю т ь
функції з в и ч а й н о ї л о к а л ь н о ї о б р о б к и . Р о б о т а терміналів з а л е ж и т ь від головної системи,
до якої в о н и підключені через мережу. Д л я того, щ о б термінал міг п р а ц ю в а т и , к о р и с т у ­
вачі п о в и н н і в с т а н о в и т и п р о г р а м н е з а б е з п е ч е н н я б а г а т о в і к о н н о г о с е р в е р а н а г о л о в н о м у
процесорі, щ о в и к о н у є п р и к л а д н у задачу. Л о к а л ь н а о б ч и с л ю в а л ь н а п о т у ж н і с т ь термі­
налу з а з в и ч а й в и к о р и с т о в у є т ь с я для в и к о н а н н я п р о г р а м о б р о б к и з о б р а ж е н ь , а не п р и ­
кладних п р о г р а м , які в и к о н у ю т ь с я н а г о л о в н о м у п р о ц е с о р і . Термінал м о ж е в і д о б р а ж а т и
на о д н о м у і т о м у ж екрані декілька задач. К о р и с т у в а ч м о ж е з м і н ю в а т и р о з м і р и вікон,
їхнє м і с ц е з н а х о д ж е н н я і м а н і п у л ю в а т и н и м и в б у д ь - я к о м у місці екрана.
42

1.4.4. Сервери
П р и к л а д н і комерційні та бізнесові системи, р о з р а х о в а н і на багато користувачів,
в к л ю ч а ю ч и системи к е р у в а н н я б а з а м и даних і о б р о б к и т р а н з а к ц і й , великі в и д а в н и ­
чі системи, м е р е ж н і системи і системи о б с л у г о в у в а н н я к о м у н і к а ц і й , системи р о з р о б ­
ки п р о г р а м н о г о з а б е з п е ч е н н я і о б р о б к и з о б р а ж е н ь , в и м а г а ю т ь переходу до моделі об­
ч и с л е н ь " к л і є н т - с е р в е р " і розподіленої о б р о б к и . В розподіленій моделі " к л і є н т - с е р в е р "
ч а с т и н у р о б о т и в и к о н у є сервер, а ч а с т и н у - к о м п ' ю т е р к о р и с т у в а ч а (в загальному ви­
п а д к у ч а с т и н и сервера і к о р и с т у в а ч а м о ж у т ь в и к о н у в а т и с ь і на о д н о м у комп'ютері). Іс­
нує декілька типів серверів для різних з а с т о с у в а н ь : ф а й л о в и й сервер, сервер бази даних,
п р и н т - с е р в е р , о б ч и с л ю в а л ь н и й сервер, сервер з а с т о с у в а н ь . Таким ч и н о м , тип сервера
в и з н а ч а є т ь с я р е с у р с о м , я к и м він володіє ( ф а й л о в а система, база даних, принтери, п р о ­
ц е с о р и або п р и к л а д н і п а к е т и п р о г р а м ) .
З і н ш о г о б о к у існує к л а с и ф і к а ц і я серверів за м а с ш т а б о м м е р е ж і , в якій в о н и в и к о ­
р и с т о в у ю т ь с я : сервер р о б о ч о ї групи, сервер відділу або сервер п і д п р и є м с т в а (корпора­
т и в н и й сервер). Ц я к л а с и ф і к а ц і я н а д т о умовна. Н а п р и к л а д , р о з м і р групи може зміню­
в а т и с я в діапазоні від декількох людей до декількох сотень людей, а сервер відділу може
о б с л у г о в у в а т и від 20 до 150 к о р и с т у в а ч і в . О ч е в и д н о , з а л е ж н о від числа користувачів і
х а р а к т е р у в и р і ш у в а н и х н и м и з а в д а н ь , в и м о г и до складу о б л а д н а н н я і п р о г р а м н о г о за­
б е з п е ч е н н я сервера, до його надійності та п р о д у к т и в н о с т і с у т т є в о відрізняються.
Файлові сервери н е в е л и к и х р о б о ч и х груп (не більше 20-30 людей) простіше всього
р е а л і з у ю т ь с я на п л а т ф о р м і п е р с о н а л ь н и х к о м п ' ю т е р і в і п р о г р а м н о м у забезпеченні Nov­
ell NetWare. Ф а й л - с е р в е р в д а н о м у в и п а д к у в и к о н у є р о л ь ц е н т р а л ь н о г о сховища даних.
Т и п о в и м и до складу н е в е л и к и х ф а й л - с е р в е р і в в х о д я т ь п р о ц е с о р , основна та з о в н і ш н я
п а м ' я т ь , а т а к о ж а д а п т е р Ethernet. До складу т а к и х серверів часто включаються диско­
вод г н у ч к и х дисків і д и с к о в о д к о м п а к т - д и с к і в . Графіка для більшості серверів несуттєва,
т о м у д о с т а т н ь о мати з в и ч а й н и й м о н о х р о м н и й м о н і т о р з н е в и с о к о ю роздільною здатніс­
тю. Б а ж а н о з а с т о с у в а т и п р и с т р і й б е з п е р е б і й н о г о ж и в л е н н я .
Для ф а й л - с е р в е р і в з а г а л ь н о г о доступу, з я к и м и в о д н о ч а с м о ж у т ь п р а ц ю в а т и де­
кілька десятків, а то і сотень людей, п р о с т о ї о д н о п р о ц е с о р н о ї п л а т ф о р м и і програмного
з а б е з п е ч е н н я Novell м о ж е в и я в и т и с я недостатньо. В ц ь о м у в и п а д к у в и к о р и с т о в у ю т ь ­
ся п о т у ж н і б а г а т о п р о ц е с о р н і сервери з м о ж л и в о с т я м и н а р о щ у в а н н я основної пам'яті
до декількох ГБ, д и с к о в о г о п р о с т о р у до сотень ГБ, ш в и д к и м и інтерфейсами д и с к о в о ­
го о б м і н у (типу Fast SCSI-2, Fast&Wide SCSI-2 і Fiber Channel) і декількома м е р е ж н и м и
і н т е р ф е й с а м и . Ці сервери в и к о р и с т о в у ю т ь о п е р а ц і й н у
систему U N I X , м е р е ж н і п р о т о к о л и T C P / I P і NFS. На базі
б а г а т о п р о ц е с о р н и х U N I X - с е р в е р і в з а з в и ч а й будуються
т а к о ж сервери баз д а н и х в е л и к и х і н ф о р м а ц і й н и х систем,
бо на н и х п о к л а д а є т ь с я о с н о в н е н а в а н т а ж е н н я з о б р о б к и
і н ф о р м а ц і й н и х запитів. С е р в е р и подібного типу о т р и ­
м а л и н а з в у суперсерверів.
Р о з г л я н е м о технічні х а р а к т е р и с т и к и одного з серве-
. „ -> рів ф і р м и Sun, а саме сервера Т2000, зовнішній вигляд
Рис. 1.16. Зовнішній вигляд Г тг г
і
сервера Т2000 фірми Sun я к
наведено на рис. 1.16. Й о г о ціна, з а л е ж н о від к о м п -
о г о

Microsystems л е к т у в а н н я , с т а н о в и т ь п о н а д $8,419. До складу сервера


43

входять до в о с ь м и п р о ц е с о р і в частотою 1.2 ГГц з а р х і т е к т у р о ю U l t r a S P A R C Т І , до 32 ГБ


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

1.4.5. Великі універсальні комп'ютерні системи


Великі універсальні к о м п ' ю т е р н і системи ( м е й н ф р е й м и ) і до с ь о г о д н і ш н ь о г о д н я
залишаються н а й п о т у ж н і ш и м и (не р а х у ю ч и с у п е р к о м п ' ю т е р і в ) к о м п ' ю т е р н и м и систе­
мами загального п р и з н а ч е н н я , щ о з а б е з п е ч у ю т ь б е з п е р е р в н и й ц і л о д о б о в и й р е ж и м екс­
плуатації. Вони м о ж у т ь в к л ю ч а т и один а б о декілька п р о ц е с о р і в , к о ж н и й з яких, у свою
чергу, може с п о р я д ж а т и с я в е к т о р н и м и с п е ц і а л і з о в а н и м и п р о ц е с о р а м и ( п р и с к о р ю в а ч а ­
ми операцій з п р о д у к т и в н і с т ю с у п е р к о м п ' ю т е р і в ) . З а з в и ч а й м е й н ф р е й м и а с о ц і ю ю т ь с я
з в е л и к и м и за г а б а р и т а м и к о м п ' ю т е р а м и , що в и м а г а ю т ь с п е ц і а л ь н о о б л а д н а н и х п р и ­
міщень із системами в о д я н о г о о х о л о д ж у в а н н я і к о н д и ц і ю в а н н я . О д н а к п р о г р е с в облас­
ті елементної та к о н с т р у к т о р с ь к о ї бази д о з в о л и в істотно з м е н ш и т и г а б а р и т и о с н о в н и х
пристроїв. П о р я д з н а д п о т у ж н и м и м е й н ф р е й м а м и , щ о в и м а г а ю т ь організації д в о к о н ­
турної водяної системи о х о л о д ж у в а н н я , є м е н ш п о т у ж н і моделі, для о х о л о д ж у в а н н я
яких достатньо п р и м у с о в о ї п о в і т р я н о ї в е н т и л я ц і ї , та моделі, побудовані за б л о к о в о - м о ­
дульним п р и н ц и п о м , які не в и м а г а ю т ь с п е ц і а л ь н и х п р и м і щ е н ь і кондиціонерів.
О с н о в н и м и п о с т а ч а л ь н и к а м и м е й н ф р е й м і в є відомі к о м п ' ю т е р н і компанії I B M , A m ­
dahl (в даний час в складі к о н ц е р н у Fujitsu), I C L , Fujitsu Siemens Computers, W i n c o r N i x -
dorf A G , Siemens Business Services і деякі інші, але п р о в і д н а р о л ь н а л е ж и т ь б е з у м о в н о
компанії I B M . Саме архітектура системи ІВМ/360, в и п у щ е н о ї в 1964 році, і її н а с т у п н і
покоління стали з р а з к о м д л я н а с л і д у в а н н я . Так, в С Р С Р п р о т я г о м багатьох р о к і в в и п у с ­
калися м а ш и н и р я д у ЄС Е О М , що є аналогом цієї системи. В а р х і т е к т у р н о м у плані м е й н ­
фрейми є б а г а т о п р о ц е с о р н и м и с и с т е м а м и , що м і с т я т ь один а б о декілька ц е н т р а л ь н и х
і периферійних п р о ц е с о р і в зі спільною п а м ' я т т ю , з в ' я з а н и х м і ж с о б о ю в и с о к о ш в и д к і с -
ними м а г і с т р а л я м и передачі даних. П р и ц ь о м у о с н о в н е о б ч и с л ю в а л ь н е н а в а н т а ж е н н я
покладено на ц е н т р а л ь н і п р о ц е с о р и , а п е р и ф е р і й н і п р о ц е с о р и (в термінології I B M - се­
лекторні, блок-мультиплексні, мультиплексні к а н а л и і п р о ц е с о р и т е л е о п р а ц ю в а н н я ) за­
безпечують р о б о т у з ш и р о к о ю н о м е н к л а т у р о ю п е р и ф е р і й н и х п р и с т р о ї в .
Спочатку м е й н ф р е й м и були о р і є н т о в а н і на ц е н т р а л і з о в а н у модель о б ч и с л е н ь та пра­
цювали під к е р у в а н н я м п а т е н т о в а н и х о п е р а ц і й н и х систем. О д н а к п і д в и щ е н и й інтерес
споживачів до в і д к р и т и х систем, п о б у д о в а н и х на базі м і ж н а р о д н и х с т а н д а р т і в , з м у с и в
постачальників м е й н ф р е й м і в істотно р о з ш и р и т и м о ж л и в о с т і своїх о п е р а ц і й н и х систем
в напрямку сумісності.
О д н и м и з н а й п о т у ж н і ш и х на даний час є м е й н ф р е й м и сім'ї zSeries ф і р м и I B M , з о ­
внішній вигляд одного з блоків я к и х н а в е д е н о на рис. 1.17. До о с н о в н и х о с о б л и в о с т е й
44

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


п а м ' я т і , а д р е с а ц і я якої з а б е з п е ч у є т ь с я 6 4 - р о з р я д н и м адресним
с л о в о м , р о з м і щ е н н я в к о ж н о м у з 32 блоків до 54 ц е н т р а л ь н и х
п р о ц е с о р і в , п р и ч о м у к о ж е н блок м о ж е бути р о з н е с е н и м в п р о ­
сторі на віддаль до 100 кілометрів, які забезпечують п р о д у к т и в ­
ність п о н а д 18 мільярдів к о м а н д за секунду, підтримка р о б о т и з
о п е р а ц і й н и м и с и с т е м а м и Linux, z/OS, z / V M , z / V S E , z/TPF, M U -
SIC/SP, п о т у ж н і з о в н і ш н і і н т е р ф е й с и .
С т р і м к и й ріст п р о д у к т и в н о с т і п е р с о н а л ь н и х комп'ютерів,
р о б о ч и х станцій і серверів п р и з в і в до з н и ж е н н я п о т р е б и в м е й н -
ф р е й м д х . О д н а к цей п р о ц е с о с т а н н і м ч а с о м дещо уповільнився.
О с н о в н о ю п р и ч и н о ю в і д р о д ж е н н я інтересу д о м е й н ф р е й м і в екс­
п е р т и в в а ж а ю т ь складність переходу до розподіленої архітекту­
р и к л і є н т - с е р в е р , щ о в и я в и л а с я в и щ о ю , ніж п р и п у с к а л о с я . Крім
Рис. 1.17. Зовнішній того, багато к о р и с т у в а ч і в в в а ж а ю т ь , щ о розподілене середовище,
вигляд одного блока на п р о т и в а г у м е й н ф р е й м а м , не є д о с т а т н ь о н а д і й н и м для найвід­
мэйнфрейма сім'ї zSeri-
повідальніших застосувань.
es фірми IBM
Головним недоліком м е й н ф р е й м і в у н и н і ш н і й час з а л и ш а є т ь с я
відносно низьке співвідношення продуктивність/вартість. Однак
п о с т а ч а л ь н и к и м е й н ф р е й м і в д о к л а д а ю т ь з н а ч н и х з у с и л ь для п о л і п ш е н н я цього показ­
ника. Слід т а к о ж п а м ' я т а т и , що в світі існує в е л и ч е з н а і н с т а л ь о в а н а база м е й н ф р е й м і в ,
на якій п р а ц ю ю т ь д е с я т к и т и с я ч п р и к л а д н и х п р о г р а м н и х систем. Відмовитися від р о ­
ками н а п р а ц ь о в а н о г о п р о г р а м н о г о з а б е з п е ч е н н я п р о с т о н е р о з у м н о . Тому в н и н і ш н і й
час очікується з р о с т а н н я о б ' є м і в п р о д а ж у м е й н ф р е й м і в , я к і з одного боку, д о з в о л я т ь
модернізувати існуючі с и с т е м и , з а б е з п е ч и в ш и с к о р о ч е н н я е к с п л у а т а ц і й н и х видатків, а з
і н ш о г о боку, с т в о р я т ь нову базу д л я н а й в і д п о в і д а л ь н і ш и х з а с т о с у в а н ь .

1.4.6. Кластерні комп'ютерні системи


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

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


к о н т р о л ю і корекції помилок, а т а к о ж засобів а в т о м а т и ч н о г о в і д н о в л е н н я о б ч и с л ю в а л ь ­
ного п р о ц е с у після п р о я в у несправності, в к л ю ч а ю ч и а п а р а т н у і п р о г р а м н у н а д л и ш к о -
вість, на основі якої реалізуються р і з н о м а н і т н і варіанти стійкої до в і д м о в и архітектури.
П і д в и щ е н н я готовності є з а с о б о м б о р о т ь б и за з н и ж е н н я часу п р о с т о ю системи. О с н о в н і
експлуатаційні х а р а к т е р и с т и к и системи і с т о т н о з а л е ж а т ь від з р у ч н о с т і її о б с л у г о в у в а н ­
ня, зокрема від р е м о н т о п р и д а т н о с т і , к о н т р о л е п р и д а т н о с т і і т. д.
В о с т а н н і р о к и в літературі з о б ч и с л ю в а л ь н о ї техніки все ч а с т і ш е в ж и в а є т ь с я термін
"системи високої г о т о в н о с т і " (High Availability Systems). Всі т и п и систем високої готов­
ності орієнтовані на мінімізацію часу п р о с т о ю . Є два т и п и часу п р о с т о ю к о м п ' ю т е р а :
п л а н о в и й і н е п л а н о в и й . П л а н о в и й час п р о с т о ю з а з в и ч а й в к л ю ч а є час, п р и й н я т и й для
проведення робіт по модернізації системи і д л я її о б с л у г о в у в а н н я . Н е п л а н о в и й час п р о ­
стою є результатом відмови системи а б о її к о м п о н е н т и . Хоча с и с т е м и високої г о т о в н о с ­
ті, м о ж л и в о , більше асоціюються з мінімізацією н е п л а н о в и х п р о с т о ї в , в о н и в и я в л я ю т ь с я
також к о р и с н и м и для з м е н ш е н н я п л а н о в о г о часу п р о с т о ю .
Існує декілька типів систем високої готовності, що в і д р і з н я ю т ь с я своїми ф у н к ц і о ­
н а л ь н и м и м о ж л и в о с т я м и і вартістю. Слід відзначити, що в и с о к а готовність не д а є т ь с я
безкоштовно. Вартість систем високої г о т о в н о с т і набагато п е р е в и щ у є вартість з в и ч а й ­
них систем. П е в н о т о м у н а й б і л ь ш е р о з п о в с ю д ж е н н я о т р и м а л и кластерні системи з а в д я ­
ки їх здатності з а б е з п е ч и т и д о с т а т н ь о в и с о к и й рівень готовності п р и в і д н о с н о н и з ь к и х
витратах. Термін " к л а с т е р и з а ц і я " на сьогодні в к о м п ' ю т е р н і й п р о м и с л о в о с т і м а є багато
різноманітних значень. Точне в и з н а ч е н н я
могло б звучати так: "реалізація о б ' є д н а н ­
ня м а ш и н , що п р е д с т а в л я є т ь с я є д и н и м ці­
лим для о п е р а ц і й н о ї системи, системного
програмного з а б е з п е ч е н н я , п р и к л а д н и х
програм і користувачів". М а ш и н и , клас-
теризовані т а к и м с п о с о б о м , м о ж у т ь п р и
відмові одного п р о ц е с о р а д у ж е ш в и д к о
перерозподілити р о б о т у на інші п р о ц е с о ­
ри всередині кластера. Це, м о ж л и в о , н а й ­
в а ж л и в і ш е з а в д а н н я багатьох п о с т а ч а л ь ­
ників систем високої готовності.
Першою к о н ц е п ц і ю кластерної сис­
теми анонсувала к о м п а н і я D E C , в и з н а ­
ч и в ш и ї ї я к групу о б ' є д н а н и х між с о б о ю
комп'ютерів, щ о п р е д с т а в л я ю т ь с о б о ю
єдиний вузол о б р о б к и інформації. По суті
кластер цієї компанії був слабко з в ' я з а ­
ною б а г а т о м а ш и н н о ю системою з спіль­
ною з о в н і ш н ь о ю п а м ' я т т ю , що з а б е з п е ч у є
єдиний механізм к е р у в а н н я і адміністру­
вання. На рис. 1.18 п о к а з а н о з о в н і ш н і й
вигляд такого кластера. Рис
- 1 1 8
- Зовнішній вигляд кластера
46

Робота будь-якої кластерної системи визначається двома головними компонента­


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

1.4.7. Суперкомп'ютери
До класу с у п е р к о м п ' ю т е р і в н а л е ж а т ь к о м п ' ю т е р и , що м а ю т ь м а к с и м а л ь н у в даний
час п р о д у к т и в н і с т ь , а т а к о ж м а к с и м а л ь н у є м н і с т ь о с н о в н о ї та з о в н і ш н ь о ї пам'яті. Вони
асоціюються з в е л и к и м и р о з м і р а м и , в е л и к и м и з а в д а н н я м и , г р а н и ч н о в и с о к и м и харак­
т е р и с т и к а м и . Ш в и д к и й р о з в и т о к к о м п ' ю т е р н о ї індустрії п р и з в о д и т ь до відносності да­
ного п о н я т т я . С у п е р к о м п ' ю т е р десятирічної давності сьогодні під це в и з н а ч е н н я вже не
п о т р а п л я є . Н а п р и к л а д , п р о д у к т и в н і с т ь п е р с о н а л ь н и х комп'ютерів, щ о використовують
Pentium-II/300MHz, є б л и з ь к о ю до п р о д у к т и в н о с т і суперкомп'ютерів середини 70-х р о ­
ків, п р о т е за с ь о г о д н і ш н і м и м і р к а м и с у п е р к о м п ' ю т е р а м и не є ні ті, ні інші.
Н и ж ч е п о д а н о декілька п р и к л а д і в , щ о п о к а з у ю т ь основні х а р а к т е р и с т и к и комп'юте­
рів ц ь о г о класу, які в и к о р и с т о в у ю т ь с я в д а н и й час.
C R A Y Т932, в е к т о р н о - к о н в е є р н и й к о м п ' ю т е р ф і р м и C R A Y Research Inc. (на сьогодні
це є підрозділ Silicon Graphics Inc.), у п е р ш е в и п у щ е н и й у 1996 році. М а к с и м а л ь н а про­
д у к т и в н і с т ь одного п р о ц е с о р а д о р і в н ю є м а й ж е 2 м л р д операцій за секунду, основна
п а м ' я т ь н а р о щ у є т ь с я до 8 ГБ, д и с к о в и й п р о с т і р до 256000 ГБ (тобто 256Т6). К о м п ' ю т е р у
м а к с и м а л ь н і й конфігурації в м і щ у є 32 п р о ц е с о р и , що п р а ц ю ю т ь із з а г а л ь н о ю пам'яттю,
т о м у м а к с и м а л ь н а п р о д у к т и в н і с т ь всієї к о м п ' ю т е р н о ї системи складає більше 60 млрд
операцій за секунду.
I B M SP2, м а т р и ч н и й п а р а л е л ь н и й к о м п ' ю т е р ф і р м и I B M . П о б у д о в а н и й н а основі
с т а н д а р т н и х п р о ц е с о р і в PowerPC 604е або P O W E R 2 SC, сполучених між собою через
в и с о к о ш в и д к і с н и й к о м у т а т о р , причохму к о ж н и й м а є свою л о к а л ь н у основну пам'ять і
47

дискову підсистему. Х а р а к т е р и с т и к и ц и х п р о ц е с о р і в відомі й о с о б л и в о г о п о д и в у не в и ­


кликають, проте в рамках однієї системи SP2 їх м о ж е бути о б ' є д н а н о д у ж е багато. З о к р е ­
ма, м а к с и м а л ь н а система, в с т а н о в л е н а в Pacific Northwest National Laboratory (Richland,
USA), вміщує 512 процесорів. Виходячи з числа п р о ц е с о р і в , м о ж н а у я в и т и с у м а р н у п о ­
тужність всієї системи.
HP Exemplar, к о м п ' ю т е р із к л а с т е р н о ю а р х і т е к т у р о ю від Hewlett-Packard Inc. З о к р е м а ,
модель V2250 (клас V) побудована на основі м і к р о п р о ц е с о р а РА-8200, що п р а ц ю є з так­
товою частотою 240 МГц. В р а м к а х
одного вузла зі спільною о с н о в н о ю
пам'яттю до 16 ГБ м о ж н а о б ' є д н а ­
ти до 16 процесорів. У свою чергу
вузли в рамках однієї к о м п ' ю т е р н о ї
системи з'єднуються між собою че­
рез високошвидкісні к а н а л и переда­
чі даних.
Суперкомп'ютер ASCI RED,
результат в и к о н а н н я п р о г р а м и A c ­
celerated Strategic Computing Initi­
ative. П о б у д о в а н и й на з а м о в л е н н я
Міністерства енергетики США, він
об'єднує 9152 п р о ц е с о р и Pentium
Pro, має 600 ГБ сумарної о с н о в н о ї Рис. 1.19. Зовнішній вигляд суперкомп'ютера
пам'яті та загальну п р о д у к т и в н і с т ь ' " Gene/L фірми IBM
в е

1800 мільярдів операцій за секунду.


Н а й п о т у ж н і ш и м на сьогодні к о м п ' ю т е р о м є с у п е р к о м п ' ю т е р ф і р м и I B M Blue Gene/L
(рис. 1.19), я к и й м а є 131 072 п р о ц е с о р н и х вузлів та п р о д у к т и в н і с т ь 280.6 T F L O P S (10 12

FLOPS). Кожен вузол містить п р о ц е с о р PowerPC 440 із 512 МБ л о к а л ь н о ї пам'яті.


В 2006 році був у в е д е н и й в е к с п л у а т а ц і ю с у п е р к о м п ' ю т е р M D G R A P E - 3 , я к и й д о -
сяг п р о д у к т и в н о с т і 1 P F L O P S (10 F L O P S ) , о д н а к й о г о не в і д н о с я т ь до у н і в е р с а л ь н и х
15

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


наміки.
Навіть спрощені конфігурації т а к и х к о м п ' ю т е р і в к о ш т у ю т ь не о д и н мільйон доларів
США. Виникає р я д п р и р о д н и х з а п и т а н н ь :
> які з а в д а н н я настільки в а ж л и в і , що п о т р е б у ю т ь в и к о р и с т а н н я к о м п ' ю т е р і в в а р ­
тістю декілька мільйонів доларів?
> які з а в д а н н я настільки складні, що п р о ц е с о р а Pentium IV недостатньо?
От л и ш е невеличкий список областей людської діяльності, де необхідно в и к о р и с т о ­
вувати суперкомп'ютери: а в т о м о б і л е б у д у в а н н я ; н а ф т о - і г а з о в и д о б у т о к ; ф а р м а к о л о г і я ;
прогноз погоди і м о д е л ю в а н н я зміни клімату; сейсморозвідка; п р о е к т у в а н н я е л е к т р о н ­
них пристроїв; синтез н о в и х матеріалів, генні д о с л і д ж е н н я .
На рис. 1.20 подано з а в д а н н я , для в и к о н а н н я я к и х необхідне з а с т о с у в а н н я с у п е р ­
комп'ютерів, а т а к о ж потрібні для їх в и р і ш е н н я к о м п ' ю т е р н і р е с у р с и .
48

Структурна
Динаміка
біологія
механізмів

Прогноз Фармацевтика
— погоди на 3 доби

Тривимірне Хімічна
Двовимірна моделювання динаміка
аеродинаміка плазми

100 1 10 100 1
М F LOPS GFLOPS GFLOPS GFLOPS TFLOPS

Рис. 1.20. Завдання та комп'ютерні ресурси

Видно, щ о ємність п а м ' я т і д о с я г а є одного Т Б з а у м о в и , щ о п р о д у к т и в н і с т ь м а є бути


о д и н T F L O P S . З р о з у м і л о , що м е ж а н е о б х і д н и х к о м п ' ю т е р н и х ресурсів є р у х о м о ю . На­
дати р е с у р с и , які в и м а г а ю т ь с я н а в е д е н и м и з а в д а н н я м и , за допомогою с т а н д а р т н и х од-
н о п р о ц е с о р н и х систем н е м о ж л и в о . Ц е с п р и ч и н ю є в и к о р и с т а н н я багатопроцесорних
к о м п ' ю т е р н и х систем я к м а г і с т р а л ь н о г о н а п р я м к у д о с я г н е н н я високої продуктивності.

1.4.8. Мікроконтролери

М і к р о к о н т р о л е р и - к о м п ' ю т е р и на кристалі, п р и з н а ч е н і д л я к е р у в а н н я е л е к т р о н н и ­
м и п р и с т р о я м и , з о к р е м а п о б у т о в и м и п р и с т р о я м и , в и р о б н и ч и м и лініями, вимірюваль­
н и м и п р и с т р о я м и і т. д. До складу м і к р о к о н т р о л е р а входять наступні вузли:
> ц е н т р а л ь н и й п р о ц е с о р , р о з р я д н і с т ю від 4 до 64 бітів, з а л е ж н о від потрібної точ­
ності о б ч и с л е н ь ;
> і н т е р ф е й с и в в е д е н н я - в и в е д е н н я , в п е р ш у чергу послідовні порти;
> п е р и ф е р і й н і пристрої, такі як: т а й м е р и та схеми захисту, ц и ф р о а н а л о г о в і та ана-
логоцифрові перетворювачі;
> п а м ' я т ь з д о в і л ь н и м д о с т у п о м д л я з б е р і г а н н я даних;
> п о с т і й н а п а м ' я т ь т и п у R O M , E P R O M , E E P R O M ч и Flash д л я з б е р і г а н н я п р о ­
грами;
> генератор тактів.
Така інтеграція н а з в а н и х п р и с т р о ї в на кристалі д о з в о л я є з а б е з п е ч и т и малі габарити
та с п о ж и в а н н я і с п р и я є ш и р о к о м у в и к о р и с т а н н ю м і к р о к о н т р о л е р і в у р і з н о г о р о д у
вбудованих системах. Наприклад, в сучасному автомобілі використовується понад
50 м і к р о к о н т р о л е р і в . Вони т а к о ж в и к о р и с т о в у ю т ь с я в п о б у т о в і й електроніці, мобільних
телефонах, в и р о б н и ч и х лініях т о щ о . На рис. 1.21 п о д а н о з о в н і ш н і й вигляд м і к р о к о н т р о ­
лера РІС 18F8720 ф і р м и Microchip в корпусі T Q F P з 80 в и в о д а м и .
Р о з р о б н и к и м і к р о к о н т р о л е р і в з а б е з п е ч у ю т ь с п е ц і а л ь н и й сервіс для користувачів,
з о к р е м а версії, які д о з в о л я ю т ь п е р е п р о г р а м у в а н н я п р о г р а м н о ї пам'яті ультрафіолето-
49

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

1.4.9. Спеціалізовані комп'ютери


За допомогою у н і в е р с а л ь н и х к о м п ' ю т е р і в та
к о м п ' ю т е р н и х систем (УКС), які були р о з г л я н у т і
вище, м о ж н а в и р і ш у в а т и багато задач н а у к о в о г о ,
в и р о б н и ч о - т е х н і ч н о г о та іншого характеру. О д н а к
існують н а д з в и ч а й н о в а ж л и в і класи задач і окремі
задачі, для р о з в ' я з к у я к и х математичні та техніко- Рис. 1.21. Зовнішній вигляд мікрокон-
економічні якості УКС недостатні. Не в а р т о д о в о ­ тролера РІС 18F8720 фірми Microchip
дити дієвість п р и н ц и п у спеціалізації і н с т р у м е н ­
т а л ь н и х засобів взагалі, оскільки вся свідома технічна діяльність людства її п і д т в е р д ж у є .
Досить вказати, що цей п р и н ц и п е ф е к т и в н о діє і в галузі і н ф о р м а т и к и . З а г а л ь н и й аналіз
п р и ч и н с т в о р е н н я і в и к о р и с т а н н я с п е ц і а л і з о в а н и х к о м п ' ю т е р н и х систем (СКС) показує,
що ці п р и ч и н и м о ж н а віднести до т р ь о х о с н о в н и х груп.
Перша група о б ' є д н у є п р и ч и н и , щ о в и н и к л и внаслідок с у п е р е ч н о с т е й м і ж ф о р м а л ь ­
ними м а т е м а т и ч н и м и м е т о д а м и п о с т а н о в к и і р о з в ' я з к у задач, з одного боку, і з а г а л ь ­
ними п р и н ц и п а м и організації та ф у н к ц і о н у в а н н я , а т а к о ж т е х н і ч н и м и м о ж л и в о с т я м и
УКС, з іншого боку. С а м е м а т е м а т и ч н а сутність задач часто о б у м о в л ю є необхідність
с т в о р е н н я С К С для їх розв'язку. Як п р и к л а д и т у т м о ж н а навести нові н е с т а н д а р т н і та
неалгоритмічні методи, системи алгебраїчних, д и ф е р е н ц і й н и х та і н т е г р а л ь н и х р і в н я н ь
великої розмірності, логічні та і м о в і р н і с н о - с т а т и с т и ч н і задачі, дії над м а т р и ц я м и та век­
торами, задачі в б а г а т о в и м і р н и х п р о с т о р а х та багато інших.
До другої г р у п и в х о д я т ь п р и ч и н и , які о б у м о в л е н і з м і с т о в н о ю с т о р о н о ю задач, в и р і ­
ш у в а н и х СКС, та в і д о б р а ж а ю т ь с п е ц и ф і к у в і д п о в і д н и х п р е д м е т н и х областей.
Третя група п р и ч и н о б у м о в л е н а о с о б л и в и м и в и м о г а м и д о якості реалізації к о м п ' ю ­
терних систем, які з а з в и ч а й п о л я г а ю т ь в е к с т р е м а л і з а ц і ї (тобто в м а к с и м а л ь н о м у набли­
женні д о т е о р е т и ч н и х г р а н и ц ь ) д е я к и х ї х х а р а к т е р и с т и к , н а п р и к л а д , п р о д у к т и в н о с т і ,
надійності (безвідмовності, ж и в у ч о с т і , в і д н о в л ю в а н о с т і , довговічності та ін.), вартості,
точності, габаритів, маси і т.п. Сюди ж н а л е ж а т ь в и м о г и , що в и з н а ч а ю т ь такі якості
комп'ютерних систем, як їх повна або ч а с т к о в а і м п л а н т а ц і я ( к о н с т р у к т и в н е та ф у н к ц і о ­
нальне суміщення) в інші системи, і н ф о р м а ц і й н е п о є д н а н н я з н и м и , п р и с т о с о в а н і с т ь до
умов експлуатації та кваліфікації о б с л у г о в у ю ч о г о п е р с о н а л у і т.д.
Слід мати на увазі, що р е а л ь н і ситуації с т в о р е н н я СКС н а й п о в н і ш е х а р а к т е р и з у ­
ються д в о м а о с о б л и в о с т я м и . П е р ш а п о л я г а є в тому, що саме СКС є с в о є р і д н и м засо­
бом апробації н о в и х методів а в т о м а т и з а ц і ї о б р о б к и інформації, щ о м а ю т ь м а т е м а т и ч н і
корені. Н а п р и к л а д , р о з п а р а л е л ю в а н н я та д е ц е н т р а л і з а ц і я о б ч и с л е н ь , м а к р о о п е р а ц і ї та
функціональні р о з ш и р ю в а ч і , с и м в о л ь н а о б р о б к а та р о з в ' я з о к задач в б а г а т о в и м і р н и х
числових системах та ін. п р о й ш л и с п о ч а т к у д у ж е р е т е л ь н у перевірку в С К С і тільки піс­
ля цього з ' я в и л и с я в УКС.
4 Зам. 371.
50

Друга о с о б л и в і с т ь п о в ' я з а н а з тшм, що р е а л ь н і СКС є с к л а д н и м и п р о г р а м н о - т е х н і ч ­


н и м и к о м п л е к с а м и , в я к и х на і н ж е н е р н о м у рівні необхідно з а д о в о л ь н и т и багато супе­
р е ч л и в и х вимог. Тому д о с я г н е н н я о п т и м а л ь н и х і ф у н к ц і о н а л ь н и х я к о с т е й СКС може
б у т и п р о б л е м а т и ч н и м і д о ц і л ь н і ш е в и з н а ч а т и ці я к о с т і як о п т и м і з о в а н і , т о б т о такі, що
тією ч и і н ш о ю м і р о ю н а б л и ж а ю т ь с я д о о п т и м а л ь н и х . Аналіз м а т е м а т и ч н и х методів
о п т и м і з а ц і ї С К С показує, щ о в о н и д о з в о л я ю т ь , п е в н о ю мірою, в и я в л я т и недоліки таких
систем, 'їхні "слабкі місця", п р о с т е ж и т и в з а є м о з в ' я з о к х а р а к т е р и с т и к системи, визначити
з а г а л ь н и й н а п р я м о к п і д в и щ е н н я їх е ф е к т и в н о с т і та о ц і н и т и різні варіанти СКС. Однак
ці м е т о д и не д а ю т ь н і я к и х к о н с т р у к т и в н и х р і ш е н ь і шляхів у д о с к о н а л е н н я СКС, не ви­
з н а ч а ю т ь з м і с т о в н о ї с т о р о н и р і з н и х варіантів їх організації та реалізації. Генезис таких
варіантів ф о р м а л ь н и м и м а т е м а т и ч н и м и м е т о д а м и н е м о ж л и в и й . Тому п р о ц е с с т в о р е н н я
о п т и м і з о в а н и х С К С м а є х а р а к т е р б а г а т о с т у п е н е в о ї ітераційної п р о ц е д у р и , де в різних
в і д н о ш е н н я х к о м б і н у ю т ь с я ф о р м а л ь н і т а к о н к р е т н о - з м і с т о в н і методи, щ о відіграють
а н а л і т и ч н у ( о ц і н о ч н у ) т а с и н т е т и ч н у (генеративну) ролі.
Т а к и м ч и н о м , С К С - це к о м п ' ю т е р н і с и с т е м и д л я р о з в ' я з к у великого числа відносно
в у з ь к и х класів задач, о п т и м і з о в а н і в певній к р и т е р і а л ь н і й сукупності.
Д л я С К С х а р а к т е р н і н а с т у п н і риси, які в і д р і з н я ю т ь їх від у н і в е р с а л ь н и х комп'ютер­
н и х систем:
> о р і є н т а ц і я с т р у к т у р и на в и р і ш у в а н і задачі;
> в у з ь к и й , в о с н о в н о м у п о с т і й н и й клас в и р і ш у в а н и х задач;
> о с о б л и в і в и м о г и до точності, часто н е с т а н д а р т н а д о в ж и н а р о з р я д н о ї сітки;
> с п е ц і а л ь н а система обміну, в т о м у числі н а я в н і с т ь а н а л о г о - ц и ф р о в и х та ц и ф р о -
аналогових каналів зв'язку;
> в и к о р и с т а н н я о р і є н т о в а н и х на область з а с т о с у в а н н я мов п р о г р а м у в а н н я та ши­
рокі м о ж л и в о с т і їх а п а р а т н о ї інтерпретації;
> н а я в н і с т ь с п е ц і а л ь н и х ф у н к ц і й і п р о ц е д у р в наборі операцій та команд;
> необхідність о б р о б к и вхідних д а н и х в темпі їх п о с т у п л е н н я та видачі результатів
о б ч и с л е н ь в темпі п о с т у п л е н н я вхідних даних;
> с у м і щ е н н я в часі п р и й м а н н я , о б р о б к и та видачі даних;
> висока продуктивність;
> малі г а б а р и т и ;
> низька споживана потужність;
> о р і є н т а ц і я к о н с т р у к ц і ї на к о н к р е т н е з а с т о с у в а н н я .

1.5. Предмет та порядок розгляду матеріалу даної книги


К о м п ' ю т е р є с к л а д н о ю системою. Сучасні к о м п ' ю т е р и складаються з мільйонів або й
мільярдів е л е м е н т а р н и х е л е к т р о н н и х компонент. Для з р о з у м і л о г о о п и с у такої складної
системи в и к о р и с т о в у є т ь с я її ієрархічна п р и р о д а , т о б т о к о м п ' ю т е р розглядається як на­
бір в з а є м о з в ' я з а н и х підсистем, к о ж н а з я к и х т а к о ж є ієрархічною (рис. 1.22). Н а й н и ж ­
ч и м р і в н е м є е л е м е н т а р н а підсистема. На к о ж н о м у рівні складна система включає набір
в і д п о в і д н и м ч и н о м з ' є д н а н и х компонент, які в и з н а ч а ю т ь її поведінку на д а н о м у рівні.
К о ж е н рівень м о ж е б у т и о п и с а н и м с т р у к т у р о ю т а ф у н к ц і я м и компонент. С т р у к т у р а
в к л ю ч а є перелік к о м п о н е н т та організацію їх в з а є м о з в ' я з к і в . Функції о п и с у ю т ь операції
к о ж н о ї індивідуальної к о м п о н е н т и .
51

Розгляд

Пристрій виконання Пристрій виконання


Пристрій виконанню арифметичних елементарних
логічних операцій операцій операцій

V
Зверху Знизу
вниз вверх

Рис. 1.22. Ієрархічна природа комп'ютера

О п и с м о ж е в и к о н у в а т и с ь як з н и з у догори, п о ч и н а ю ч и з е л е м е н т а р н и х е л е к т р о н н и х
компонентів і з а к і н ч у ю ч и п о в н и м о п и с о м системи, так і з г о р и донизу, ш л я х о м поді­
лу системи на складові ч а с т и н и . П е р ш и й підхід в и к о р и с т о в у є т ь с я п р и п р о е к т у в а н н і
комп'ютерів та їх ф у н к ц і о н а л ь н и х вузлів, з о к р е м а при їх і є р а р х і ч н о м у описі м о в а м и
опису а п а р а т н и х засобів т и п у У Н О Ь т а Уегііод. Для р о з г л я д у т а в и в ч е н н я к о м п ' ю т е р а
другий підхід є е ф е к т и в н і ш и м , т о м у в п о д а л ь ш о м у будемо в о с н о в н о м у к о р и с т у в а т и с я
ц и м підходом.
Комп'ютер м а є багаторівневу організацію. Н а й н и ж ч и м є р і в е н ь ф і з и ч н и х п р и с т р о ї в ,
о б ' є к т а м и якого є т р а н з и с т о р и . Він є о с н о в о ю д л я ц и ф р о в о г о логічного рівня, о б ' є к т а м и
якого є вентилі, побудовані на декількох т р а н з и с т о р а х . Вентиль в и к о н у є п р о с т і логічні
функції, такі як: І, А Б О . На основі ц и ф р о в о г о логічного р і в н я ф о р м у є т ь с я рівень м і ж -
регістрових передач або м і к р о а р х і т е к т у р н и й рівень, о б ' є к т а м и я к о г о є регістри, м у л ь т и ­
плексори, л і ч и л ь н и к и , стеки регістрів, блоки постійної та о п е р а т и в н о ї п а м ' я т і , с у м а т о р и ,
арифметико-логічні п р и с т р о ї і т. д. Цей р і в е н ь м о ж н а поділити на підрівні, о с к і л ь к и к о ­
жен з п е р е р а х о в а н и х елементів м о ж е б у т и п р е д с т а в л е н и м к і л ь к о м а р і в н я м и п р о с т і ш и х
елементів. Н а с т у п н и м є а р х і т е к т у р н и й рівень, або рівень системи к о м а н д , я к и й т а к о ж
має підрівні. Далі йде м а к р о а р х і т е к т у р н и й рівень, або рівень о п е р а ц і й н о ї системи. Цей
рівень є відповідальним за м у л ь т и п р о г р а м у в а н н я , захист п а м ' я т і , с и н х р о н і з а ц і ю п р о ц е ­
сів та багато і н ш и х в а ж л и в и х ф у н к ц і й . І, нарешті, а с е м б л е р н и й рівень та рівні м о в п р о ­
г р а м у в а н н я . К о ж н а к о м а н д а асемблерного р і в н я т р а н с л ю є т ь с я у відповідну їй к о м а н д у
52

а р х і т е к т у р н о г о р і в н я . На рівні мов п р о г р а м у в а н н я програміст п р а ц ю є з к о м п ' ю т е р о м на


т а к и х м о в а х як: С, C++, F O R T R A N , Lisp, Pascal, Prolog. К о р и с т у в а ч ц ь о г о рівня бачить
д у ж е м а л о з того, що р о б и т ь с я на н и ж ч и х рівнях.
На рис. 1.23 п р е д с т а в л е н о сім рівнів організації комп'ютера, з а п р о п о н о в а н і Е. Та-
н е н б а у м о м . Біля к о ж н о г о з рівнів п о к а з а н и й спосіб його п і д т р и м к и , а в д у ж к а х - назва
п р о г р а м и , я к а цей рівень п і д т р и м у є .

Рівень мови високого рівня


Трансляція
(компілятор)
Рівень мови асемблера
Трансляція
(асемблер)
Рівень операційної системи
Трансляція
(асемблер)
Рівень архітектури системи команд

Мікроархітектурний рівень

Цифровий логічний рівень


Апаратні засоби
Фізичний (транзисторний) рівень

Рис. 1.23. Сім рівнів організації комп'ютера

Ми не будемо р о з г л я д а т и ф і з и ч н и й та ц и ф р о в и й логічний рівні, які є предметом р о з ­


гляду к о м п ' ю т е р н о ї е л е к т р о н і к и , п р и к л а д н о ї теорії ц и ф р о в и х автоматів та комп'ютерної
схемотехніки, та які читачеві п о т р і б н о знати, п р и с т у п а ю ч и до в и в ч е н н я предмета ар­
хітектури к о м п ' ю т е р а . В даній к н и з і р о з г л я н е м о рівень архітектури системи команд та
ч а с т к о в о з н и з у м і к р о а р х і т е к т у р н и й рівень, я к и й з позиції ф у н к ц і о н у в а н н я та побудови
елементів к о м п ' ю т е р а р о з г л я д а є т ь с я в курсі к о м п ' ю т е р н о ї схемотехніки, і зверху рівень
о п е р а ц і й н о ї системи. З р і в н я архітектури системи к о м а н д програміст може п р а ц ю в а т и
з к о м п ' ю т е р о м , причому, на ц ь о м у рівні н а й б і л ь ш е враховуються о с о б л и в о с т і побудови
комп'ютера.
Р а з о м з т и м , д л я р о б о т и з к о м п ' ю т е р о м на рівні архітектури системи к о м а н д потріб­
но писати п р о г р а м у на м а ш и н н і й мові, т о б т о в командах, які є д в і й к о в и м и кодами, що
є д о с и т ь с к л а д н и м навіть для в и р і ш е н н я п р о с т и х задач. Для с п р о щ е н н я н а п и с а н н я ма­
ш и н н и х к о м а н д була введена асемблерна мова, коли к о м а н д и п р е д с т а в л я ю т ь с я в мнемо­
нічній ф о р м і . Але це не с п р о с т и л о взаємодію л ю д и н и з к о м п ' ю т е р о м . З метою скорочен­
н я р о з р и в у м і ж м о в о ю л ю д и н и т а м а ш и н и були введені м о в и п р о г р а м у в а н н я високого
р і в н я . Рівні м о в п р о г р а м у в а н н я о р і є н т о в а н і н а с п е ц и ф і к у в и к о р и с т а н н я комп'ютера.
О с к і л ь к и к о м п ' ю т е р р о з п і з н а є к о м а н д и п о ч и н а ю ч и з архітектурного рівня, перехід з в и -
53

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


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

1.6. Підсумок розділу


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

1.7. Література для подальшого читання


Основні поняття, функції й основні ф у н к ц і о н а л ь н і вузли комп'ютера та їх в з а є м о з в ' я ­
зок, а також загальна організація р о б о т и к о м п ' ю т е р а д е т а л ь н о р о з г л я н у т о в літературі
[1-4]. Тут ж е , а т а к о ж в р о б о т а х [5-11], п р о в е д е н о д е т а л ь н и й огляд історії с т в о р е н н я та
54

р о з в и т к у комп'ютерів. О к р е м о п о т р і б н о сказати п р о р о б о т у [5], в якій подано історич­


н и й о п и с п р о ц е с у с т в о р е н н я к о м п ' ю т е р і в п р о в і д н и м и н а у к о в и м и т а п р о м и с л о в и м и під­
п р и є м с т в а м и к о л и ш н ь о г о Р а д я н с ь к о г о Союзу, в т о м у числі п о к а з а н о суттєві досягнення
в цій галузі й у к р а ї н с ь к и х н а у к о в ц і в та інженерів. В р о б о т і [12] наведено підтвердження
дієвості з а к о н у М у р а , а в р о б о т і [13] о п и с а н о багаторівневу організацію комп'ютера.

1.8. Література до розділу І


1. Burks, A. W., Н. Н. Goldstine, and J. von Neumann [1946]. "Preliminary discussion of the logical
design of an electronic computing instrument," Report to the U.S. Army.
2. Amdahl, G. M. [1967]. "Validity of the single processor approach to achieving large scale
computing capabilities," Proc. AFIPS 1967 Spring Joint Computer Conf. 30 (April), Atlantic City,
N.J., 483-485.
3. Wilkes, M . V., D. J. Wheeler, and S. Gill [1951]. The Preparation of Programs for an Electronic
Digital Computer, Addison-Wesley, Cambridge, Mass.
4. Augarten, Stan. Bit by Bit: An Illustrated History of Computers. London: Unwin Paperbacks,
1985.
5. Малиновский Б. M. История вычислительной техники в лицах. KIT, Киев, 1995.
6. Blaauw, G., & Brooks, F. Computer Architecture: Concepts and Evolution. Reading, M A : Addison-
Wesley, 1997.
7. Ceruzzi, Paul E. A History of Modern Computing. Cambridge, M A : MIT Press, 1998.
8. Cortada, J. W. Historical Dictionary of Data Processing, Volume 1: Biographies; Volume 2: Orga­
nization, Volume 3: Technology. Westport, CT: Greenwood Press, 1987.
9. McCartney, Scott. ENIAC: The Triumphs and Tragedies of the World's First Computer. New York:
Walker and Company, 1999.
10. Möllenhoff, Clark R. Atanasoff: The Forgotten Father of the Computer. Ames, IA: Iowa State
University Press, 1988.
11. Polachek, Harry. "Before the ENIAC." IEEE Annals of the History of Computing 19: 2 (June
1997), pp. 25-30.
12. Schaller, R. "Moore's Law: Past, Present, and Future." IEEE Spectrum, June 1997, pp. 52-59.
th
13. Tanenbaum, A. Structured Computer Organization, 4 ed. Upper Saddle River, NJ: Prentice
Hall, 1999.

1.9. Питання до розділу I


1. Що таке комп'ютер?
2. Дайте визначення алгоритму.
3. Дайте хронологію появи перших комп'ютерів.
4. Які основні функції комп'ютера? Які основні функціональні вузли комп'ютера? їх завдання
та основні характеристики.
5. Назвіть три базових компоненти кожного комп'ютера.
6. Назвіть три типи пам'яті комп'ютера.
7. Який степінь 10 означає префікс Гіга? Якому степеню двійки він еквівалентний?
8. Який степінь 10 означає префікс мікро? Якому степеню двійки він еквівалентний?
9. Яка одиниця використовується для вимірювання тактової частоти комп'ютера?
10. Дайте пояснення суті закону Мура.
11. Як змінюється з часом тактова частота роботи процесора?
12. На скільки щороку зростає продуктивність комп'ютерів?
55

13. Як змінюється з часом ємність та час зчитування-запису динамічної напівпровідникової


пам'яті?
14. Як змінюється з часом ємність зовнішньої дискової пам'яті?
15. Які одиниці використовуються для оцінки продуктивності комп'ютера?
16. Що дає використання тестових програм для оцінки продуктивності комп'ютера?
17. Які існують тестові програми для оцінки продуктивності комп'ютера?
18. Які є основні варіанти зв'язку між функціональними вузлами комп'ютера? Які їх відмін­
ності?
19. Порівняйте двошинні структури комп'ютера з обміном через процесор та через пам'ять.
20. Як узгодити передачу даних між повільними і швидкими вузлами комп'ютера?
21. Поясніть роботу комп'ютера з одношинною структурою.
22. Що таке архітектура комп'ютера?
23. Що таке структура комп'ютера?
24. Що таке архітектура системи команд?
25. Яка різниця між архітектурою та структурою комп'ютера?
26. За якими ознаками здійснюється класифікація комп'ютерів?
27. Назвіть особливості архітектури Джона фон Неймана.
28. Які існують ненейманівські архітектури комп'ютерів? Які їх відмінні риси?
29. Назвіть два основних напрями використання комп'ютерів.
30. Що розуміється під паралельною обробкою?
31. Які є типи комп'ютерів?
32. Персональні комп'ютери - особливості та сфери застосування.
33. Як сконструйовано сучасний персональний комп'ютер?
34. Робочі станції - особливості та сфери застосування.
35. Багатотермінальні системи - особливості та сфери застосування.
36. Сервери - особливості та сфери застосування.
37. Великі універсальні комп'ютерні системи - особливості та сфери застосування.
38. Кластерні архітектури - особливості та сфери застосування.
39. Суперкомп'ютери - особливості та сфери застосування.
40. Мікроконтролери - особливості та сфери застосування.
41. Спеціалізовані комп'ютери - особливості та сфери застосування.
42. Поясніть ієрархічну природу комп'ютера.
43. Назвіть сім рівнів організації комп'ютера.
Розділ 2

\^ктт/ютері
У сучасних к о м п ' ю т е р а х в и к о р и с т о в у ю т ь різні ф о р м и та ф о р м а т и представлення да­
них, я к и м и є числа та з а к о д о в а н і с и м в о л и . Це д о з в о л я є в и б и р а т и ті із них, що найбіль­
ш о ю м і р о ю відповідають в и м о г а м р о з в ' я з у в а н и х задач. Тип в и к о р и с т о в у в а н и х ф о р м та
ф о р м а т і в п р е д с т а в л е н н я д а н и х с у т т є в о в п л и в а є н а х а р а к т е р и с т и к и комп'ютера.
У ц ь о м у розділі висвітлені о с н о в н і п и т а н н я п р е д с т а в л е н н я даних у комп'ютері, які
є в а ж л и в и м и д л я р о з у м і н н я матеріалу н а с т у п н и х розділів. О п и с а н і п о з и ц і й н і системи
ч и с л е н н я та п р и н ц и п и п о д а н н я д а н и х у двійковому, в і с і м к о в о м у і ш і с т н а д ц я т к о в о м у
кодах. Подані п р а в и л а п е р е в е д е н н я чисел із системи ч и с л е н н я з довільною основою до
десяткової, а т а к о ж п е р е в е д е н н я чисел із десяткової до системи ч и с л е н н я з іншою осно­
в о ю . Розглянуті з а с а д и п о д а н н я чисел зі з н а к о м у п р я м о м у , о б е р н е н о м у та д о п о в н я л ь ­
н о м у кодах. П р о в е д е н о аналіз о с о б л и в о с т е й п о д а н н я д а н и х у ф о р м а т а х із фіксованою та
з р у х о м о ю комою, в к л ю ч а ю ч и п о д а н н я д а н и х з а с т а н д а р т о м ІЕЕЕ-754. З в а ж а ю ч и н а
в а ж л и в і с т ь , р о з г л я н у т о п и т а н н я кодування а л ф а в і т н о - ц и ф р о в о ї інформації кодами
A S C I I , E B C D I C т а Unicode.

2.1. Позиційні системи числення


С и с т е м а ч и с л е н н я - це спосіб п о д а н н я довільного числа за д о п о м о г о ю а л ф а в і т у сим­
волів, які н а з и в а ю т ь ц и ф р а м и . Є різні системи ч и с л е н н я . Від їх о с о б л и в о с т е й з а л е ж и т ь
н а о ч н і с т ь в і д о б р а ж е н н я чисел т а складність в и к о н а н н я о п е р а ц і й над числами. П р и к л а ­
дом системи ч и с л е н н я з д у ж е с к л а д н и м с п о с о б о м з а п и с у чисел і г р о м і з д к и м и п р а в и л а м и
в и к о н а н н я а р и ф м е т и ч н и х о п е р а ц і й є р и м с ь к а система ч и с л е н н я .
Я к щ о в послідовності ц и ф р , які з о б р а ж а ю т ь число, має значення позиція ц и ф р и , то
систему числення називають позиційною. Такі системи числення характеризуються нао­
чністю відображення чисел та п р о с т и м в и к о н а н н я м а р и ф м е т и ч н и х операцій. У позиційних
системах числення при безпосередньому представленні ц и ф р число записується у вигляді:
X = х х ,...х,х„,х ,...х .
з в-1 1 (г -1 -т
Кома у цій послідовності відділяє ц і л у ч а с т и н у числа від дробової. Позиції ц и ф р , які
р а х у ю т ь с я від к о м и , н а з и в а ю т ь р о з р я д а м и . Кількісний еквівалент, щ о в и р а ж а є т ь с я ц и м
з а п и с о м , в и з н а ч а є т ь с я так:
Х = к х + к " ' х + . . . + к х , + к ° х + к ' х ,+...+к" х ,
5 5 ! т

5 5-1 1 0 -1 -т
Де:
• к - о с н о в а системи ч и с л е н н я , т о б т о кількість р і з н и х ц и ф р , які використовуються
в п о з и ц і й н і й системі ч и с л е н н я ,
57

• 8+1 - р о з р я д н і с т ь цілої ч а с т и н и числа,


• т - р о з р я д н і с т ь д р о б о в о ї ч а с т и н и числа,
" х. - ц и ф р и і-го р о з р я д у з а п и с у числа (х. = 0, 1 , к - 1 ) ,
• к - вага і-го розряду.
1

У ц ь о м у в и п а д к у вага і-го р о з р я д у в к разів б і л ь ш а за вагу ( і - І ) - г о р о з р я д у . Такі сис­


теми числення н а з и в а ю т ь с и с т е м а м и з п р и р о д н и м п о р я д к о м ваги. До н и х н а л е ж а т ь двій­
кова, вісімкова, десяткова і ш і с т н а д ц я т к о в а с и с т е м и ч и с л е н н я .
У з в и ч н і й для нас десятковій системі ч и с л е н н я довільне ч и с л о п о д а є т ь с я ц и ф р а м и
від 0 до 9; при ц ь о м у має з н а ч е н н я п о з и ц і я ц и ф р и . Ч и с л о в десятковій системі з а п и с у ­
ється у вигляді:

а значення числа о б ч и с л ю є т ь с я за т а к и м в и р а з о м :
В -ІО"-' + Ю„ • 10^' + ... + О, • 10 + 0-10° + ГУ, • 10г + ТУ • 10г + ... + ГУ
2 і 1 2
• 10 ,
м

[4-І гі-2 І 0 і 2 М

де:
• N - кількість ц и ф р (розрядів) у цілій ч а с т и н і числа (зліва від к о м и ) ,
• М - кількість р о з р я д і в у д р о б о в і й ч а с т и н і ч и с л а (справа від к о м и ) ,
• Б. - з н а ч е н н я і-го р о з р я д у ( р о з р я д и цілої ч а с т и н и ) ,
• Б'. - з н а ч е н н я і-го р о з р я д у ( р о з р я д и д р о б о в о ї ч а с т и н и ) ,
• Б - з н а ч е н н я числа.
З в и ч а й н о , що д р о б о в о ї або цілої ч а с т и н и ч и с л а м о ж е і не бути (Ы а б о М = 0).

2 . 2 . Двійкові, вісімкові та шістнадцяткові числа


У з в ' я з к у з т и м , що елементи з д в о м а с т а н а м и в и к о р и с т о в у ю т ь с я як базові елементи
комп'ютерної техніки, всі числа в к о м п ' ю т е р а х п р е д с т а в л я ю т ь с я у двійковій системі ч и с ­
лення. Розглянемо о с о б л и в о с т і цієї системи.
Двійкова система ч и с л е н н я будується за т и м с а м и м п р а в и л о м , що і десяткова, але в
ній в и к о р и с т о в у ю т ь с я л и ш е дві ц и ф р и - 0 та 1. Ч и с л о у двійковій системі ч и с л е н н я за­
писується у вигляді:
в = в„_,в„_ ...в в^в' в' ...в' ,
2 1 1 2 м

а з н а ч е н н я числа о б ч и с л ю є т ь с я за т а к и м в и р а з о м :
В = В^ • 2"-' + В _ • 2"~ + ... + В . 2' + В • 2° + В\ • 2"' + В^ • 2~ + ... + В' • 2~ ,
ы 2
2
І 0
2
м
м

де:
N - кількість д в і й к о в и х ц и ф р ( р о з р я д і в ) у цілій ч а с т и н і числа,
М - кількість д в і й к о в и х р о з р я д і в у д р о б о в і й ч а с т и н і числа,
В. - з н а ч е н н я і-го р о з р я д у цілої ч а с т и н и числа,
В'. - з н а ч е н н я і-го р о з р я д у д р о б о в о ї ч а с т и н и числа,
В - з н а ч е н н я числа.
П р и к л а д и д в і й к о в и х чисел:
1011010,01 = 1.2 + 0 • 2 + 1 • 2 + 1 • 2 + 0- 2 + 1 • 2 + 0- 2° + 0 • 2 + 1 • 2~ =
2
6 5 4 3 2 : і 2

= 64+ 16 + 8 + 2 + 0,25 = 90, 2 5 ]0

101,01101 = 1 • 2 + 1 • 2° + 1 • 2- + 1 • 2" + 1 . 2" = 5, 040625


2
2 2 3 5
10

1100110, 11 = 102,75 2 ш

Часто у р о з р о б н и к а , а то і в к о р и с т у в а ч а к о м п ' ю т е р а , в и н и к а є п о т р е б а в перевірці к о ­


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

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


з т а к и м и д о в г и м и п о с л і д о в н о с т я м и нулів та о д и н и ц ь ( н а п р и к л а д , рядок із 32 цифр) не­
з р у ч н о , то набули п о ш и р е н н я вісімкова та ш і с т н а д ц я т к о в а системи числення. У вісімко-
вій системі ч и с л е н н я в и к о р и с т о в у ю т ь вісім ц и ф р від 0 до 7, а у шістнадцятковій системі
ч и с л е н н я крім д е с я т к о в и х ц и ф р від 0 до 9 в и к о р и с т о в у ю т ь 6 літер латинського алфавіту
(А, В, С, Б, Е, Б) для п о з н а ч е н н я ц и ф р від 10 до 15. З н а ч е н н я числа обчислюється за та­
ким виразом:
Н = Н•• 104 + Н „ , • Іб*' + ... + Н • 16 + Н • 16° + Н' • 16-' + Н> • 16' +... + Н' • 16 ,
2 і
п
2
м
м

N-1 N-2 1 0 1 2 М

де:
• N - кількість ц и ф р (розрядів) у цілій ч а с т и н і числа (зліва від коми),
• М - кількість р о з р я д і в у д р о б о в і й частині ч и с л а (справа від коми),
• Н. - з н а ч е н н я і-го р о з р я д у ( р о з р я д и цілої ч а с т и н и ) ,
• Н/ - з н а ч е н н я і-го р о з р я д у ( р о з р я д и д р о б о в о ї ч а с т и н и ) ,
• Н - з н а ч е н н я числа.
О с о б л и в і с т ю ц и х систем є з р у ч н и й перехід до двійкової системи та навпаки. Три
д в і й к о в и х р о з р я д и п е р е в о д я т ь с я в один вісімковий, а ч о т и р и двійкових р о з р я д и - в один
ш і с т н а д ц я т к о в и й , як п о к а з а н о в табл. 2.1.
Таблиця 2.1
Двійкова Шістнадцяткова Двійкова Шістнадцяткова
0000 0 1000 8
0001 1 1001 9
0010 2 1010 А
ООП 3 1011 В
0100 4 1100 С
0101 5 1101
0110 6 1110 Е
0111 7 1111 Р

Н а п р и к л а д , д в і й к о в е ч и с л о 01101101 у ш і с т н а д ц я т к о в і й системі з а п и с у в а т и м е т ь с я як
6 Б . Для п е р е в е д е н н я чисел із ш і с т н а д ц я т к о в о ї та вісімкової систем ч и с л е н н я у двійкову
необхідно к о ж н у ц и ф р у числа, я к е п е р е в о д и т ь с я , з а м і н и т и відповідно ч о т и р и - або три-
р о з р я д н и м д в і й к о в и м е к в і в а л е н т о м - т е т р а д о ю або тріадою, а о т р и м а н і двійкові ц и ф р и
р о з т а ш у в а т и на місцях ш і с т н а д ц я т к о в и х або вісімкових ц и ф р .
У разі необхідності п е р е в е д е н н я чисел із десяткової системи числення у вісімкову,
ш і с т н а д ц я т к о в у та д в і й к о в у п е р е в е д е н н я р о б и т ь с я л и ш е в одну систему (вісімкову або
ш і с т н а д ц я т к о в у ) . П о д а л ь ш е п е р е в е д е н н я в и к о н у є т ь с я через двійкову систему, в и к о р и с ­
товуючи тріади та т е т р а д и .
П р и к л а д 1. П е р е в е д е м о нисло 12345,67 з десяткової системи ч и с л е н н я у двійкову, ві­
сімкову, ш і с т н а д ц я т к о в у .
1. П е р е в е д е н н я цілої ч а с т и н и числа у вісімкову систему:
12345 : 8 = 1543, з а л и ш о к 1;
1543 : 8 = 192, з а л и ш о к 7;
192 : 8 = 24, з а л и ш о к 0;
24 : 8 = 3, з а л и ш о к 0;
3 : 8 = 0, з а л и ш о к 3.
59

Результат: 30071.
2. Переведення д р о б о в о ї ч а с т и н и числа у вісімкову систему:
0,67x8 = 5,36;
0,36x8 = 2,88;
0,88 х 8 = 7,04;
0,04x8 = 0,32.
Н а б л и ж е н и й результат: 0,5270....
3. О т р и м а н н я п о в н о г о р е з у л ь т а т у ш л я х о м о б ' є д н а н н я результатів, о т р и м а н и х в п. 1
та п. 2. Результат: 30071,5270....
4. Переведення р е з у л ь т а т у у двійкову та ш і с т н а д ц я т к о в у системи ч и с л е н н я
(табл. 2.2). Поділ двійкового числа на тріади та т е т р а д и п о ч и н а є т ь с я від к о м и л і в о р у ч і
праворуч. Результат: 12345,6710=30071,52708=11000000111001,1010101112=3039,АВ816.
Таблиця 2.2
3 0 0 7 1 > 5 2 7 0 8-кові
цифри
0 1 1 0 0 0 0 0 0 1 1 1 0 0 1 > 1 0 1 0 1 0 1 1 1 0 0 0 2-кові
цифри
3 0 3 9 > А В 8 16-кові
цифри

2.3. Переведення чисел із системи числення з основою к


у десяткову систему
Один із методів п е р е в е д е н н я чисел із системи ч и с л е н н я з о с н о в о ю к у д е с я т к о в у сис­
тему ч и с л е н н я ґ р у н т у є т ь с я на в и к о р и с т а н н і кількісного е к в і в а л е н т а числа. Для пере­
ведення необхідно з а п и с а т и ч и с л о у його к і л ь к і с н о м у еквіваленті, з а м і н и в ш и ц и ф р и
системи ч и с л е н н я з о с н о в о ю к та о с н о в у к їхніми д е с я т к о в и м и е к в і в а л е н т а м и , а п о т і м
обчислити в и р а з за п р а в и л а м и десяткової а р и ф м е т и к и .
П р и к л а д 1. Переведемо д в і й к о в е ч и с л о 1011,1001 у д е с я т к о в у систему ч и с л е н н я .
1011,1001 = Ь 2 + 0-2Ч1-2Ч1-2Ч1-2-'+0-2- +0-2 +1-2' =
3 2 3 4

= 8 + 0 + 2 + 1 + 0 , 5 + 0 + 0 + 0,0625 = 11,5625;
Таким ч и н о м , 1011,1001 = 11,5625 . 2 10

П р и к л а д 2. Переведемо вісімкове ч и с л о 105,71 у д е с я т к о в у систему ч и с л е н н я .


105,71 = 1-8 + 0-8 + 5-8° + 7-8 + 1-8 = 64 + 0 + 5 + 0,875 + 0,015625 = 69,890625;
2 1 1 г

Результат: 105,71 = 69,890625 . 8 ш

Приклад 3. Переведемо шістнадцяткове число 2ЕБ,0А до десяткової системи числення.


2 Е Б , 0 А = 2-16 + и - І б ' + І З - І б Ч О - І б ' + Ю - І б - = 512 + 224 +13+0+0,0390625 =
2 2

= 849,0390625;
Результат: 2 Е Д 0 А = 849,0390625 . ] 6 ш

2.4. Переведення чисел із десяткової системи у систему


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

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


м и десяткової а р и ф м е т и к и д о о т р и м а н н я з а л и ш к у , я к и й буде д е с я т к о в и м еквівалентом
ц и ф р и м о л о д ш о г о р о з р я д у результату. Я к щ о частка від ділення не дорівнює 0, то вона
стає діленим і п р о ц е с ділення на к п р о д о в ж у є т ь с я . Як тільки чергова частка стане рівною
0, процес ділення на к припиняється. Залишок, я к и й отримали у результаті першого ділення
на к, є ц и ф р о ю розряду результату з вагою к°, залишок у результаті другого ділення - ц и ф ­
р о ю з в а г о ю к і т. д. О с т а н н і й з а л и ш о к є ц и ф р о ю с т а р ш о г о р о з р я д у результату.
1

Д р о б о в а ч а с т и н а д е с я т к о в о г о ч и с л а X м н о ж и т ь с я на к за п р а в и л а м и десяткової
а р и ф м е т и к и . В о т р и м а н о м у д о б у т к у в і д ' є д н у є т ь с я ціла частина, яка може дорівнювати
0, а д р о б о в а ч а с т и н а з н о в у м н о ж и т ь с я на к із н а с т у п н и м в і д ' є д н а н н я м цілої частини. Ця
о п е р а ц і я п о в т о р ю є т ь с я або до о т р и м а н н я нульової д р о б о в о ї ч а с т и н и добутку, або до
о т р и м а н н я необхідної кількості р о з р я д і в числа Х . Ц и ф р а с т а р ш о г о р о з р я д у результату
к

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


ною, ц и ф р а другого р о з р я д у р е з у л ь т а т у п е р е в е д е н н я - із другою від'єднаною цілою час­
т и н о ю і т.д. П р и ц ь о м у від'єднані цілі ч а с т и н и необхідно п р е д с т а в и т и в системі числення
з о с н о в о ю к.
П р и к л а д . П е р е в е д е м о д е с я т к о в е ч и с л о 11,5625 у д в і й к о в у систему ч и с л е н н я з точніс­
тю до п ' я т и р о з р я д і в після к о м и .
П е р е в е д е н н я цілої ч а с т и н и :
1 1 : 2 = 5, з а л и ш о к 1 ( м о л о д ш и й р о з р я д результату),
5 : 2 = 2, з а л и ш о к 1,
2 : 2 = 1, з а л и ш о к 0,
1:2 = 0, з а л и ш о к 1 ( с т а р ш и й р о з р я д результату).
Результат: П , = 1011 .
0 2

П р о ц е д у р а п е р е в е д е н н я д р о б о в о ї ч а с т и н и наведена у табл. 2.3.


Таблиця 2.3
Ціла частина
Результат
результату Вага двійкового
Крок Дріб множення
множення, розряду
на к = 2
яка вилучається
1 0.5625 1.125 1 Старший (перший
після коми)
2 0.125 0.25 0
3 0.25 0.5 0
4 0.5 1.0 1 Молодший
5 0.0 0.0 0

Результат: 0.5625 =0,100 1 0 .


]0 2

П о в н и й р е з у л ь т а т : 11,5625, = 1011 + 0,10010 = 1011,10010.,.


0

2.5. Представлення чисел зі знаком


Д л я п о з н а ч е н н я з н а к у числа в з в и ч а й н і й а р и ф м е т и ц і в и к о р и с т о в у ю т ь символи «-»
та «+». Як з а з н а ч а л о с я , у к о м п ' ю т е р н і й техніці в и к о р и с т о в у ю т ь елементи з двома ста­
н а м и , які м о ж у т ь зберігати д в і й к о в у ц и ф р у (0 чи 1). З р о з у м і л о , що цю ц и ф р у доцільно
в и к о р и с т а т и і для п о з н а ч е н н я з н а к у числа, коли 0 в і д о б р а ж а є з н а к «+», а 1 - знак «-».
61

Для с п р о щ е н н я в и к о н а н н я а р и ф м е т и ч н и х о п е р а ц і й додатні та від'ємні числа (тоб­


то числа зі знаком) в і д о б р а ж а ю т ь с я с п е ц і а л ь н и м и кодами: п р я м и м , о б е р н е н и м та д о п о ­
вняльним.

2.5.1. Прямий код


У прямому коді лівий (його ще н а з и в а ю т ь с т а р ш и м ) р о з р я д позначає з н а к числа, а
решта розрядів - саме ч и с л о (рис. 2.1).

Знак числа
0=»+"
1="-"

3 с,, С
,2 Сі С 0

V
Саме число в двійковому коді

Рис. 2.1. Прямий код двійкового числа

П р я м и й код двійкового п - р о з р я д н о г о числа Є в и з н а ч а є т ь с я як


[ С при в > 0;
І А + |С|, при в < 0;

де А - в е л и ч и н а , р і в н а вазі с т а р ш о г о р а з р я д у р о з р я д н о ї сітки (для д р о б о в и х чисел


А = 1, а для цілих чисел А = 2 ). Діапазон представлення чисел в п р я м о м у коді 0 < \Є\ < А.
П

Додатні числа представляються кодами 0 < С < А, а від'ємні пр 0 < С < 2А пр

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


відповідно в с т а р ш о м у р о з р я д і , я к и й н а з и в а є т ь с я з н а к о в и м . Ц и ф р о в і р о з р я д и п р я м о г о
коду представляють м о д у л ь числа, що з а б е з п е ч у є н а о ч н і с т ь п р е д с т а в л е н н я чисел в п р я ­
мому коді
Наведемо кілька п р и к л а д і в
5 = 00101 . . 5„ 10101 прямий код
10 прямий код
25, =011001 . . -25 10
111001 . .
10 прямий код прямий код

2.5.2. Обернений код


В о б е р н е н о м у коді, як і у прямому, с т а р ш и й р о з р я д п о з н а ч а є з н а к числа (0 - додатне
число, а 1 - від'ємне). Р о з р я д и додатного числа з а п и с у ю т ь с я у з в и ч а й н о м у вигляді, а
від'ємного - в і н в е р т о в а н о м у вигляді (замість 0 п и ш е т ь с я 1 і н а в п а к и ) . На рис. 2.2 п о ­
казано обернений код двійкового числа.

0=»+"
і =».<

э І с»,
С.2 с, с 0

Рис. 2.2. Обернений код двійкового числа


62

О б е р н е н и й код п - р о з р я д н о г о д в і й к о в о г о числа Є в и з н а ч а є т ь с я як

1
С При

В - \СІ
б > 0;

при С<0;\
)

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


сітці (для д р о б о в и х чисел В = 2 - 2-(п-1), а для цілих чисел В = 2п-1). Діапазон зміни чисел в
оберненому коді 0 < |С| < А. Додатні числа представляються кодами в діапазоні 0 < С < А, пр

а від'ємні - в діапазоні А < С < 2А. За в и з н а ч е н н я м обернений код від'ємного числа є до­
пр

п о в н е н н я м модуля вихідного числа до найбільшого числа без знаку, яке може бути розмі­
щене в р о з р я д н і й сітці. В з в ' я з к у з ц и м о т р и м а н н я оберненого коду двійкового від'ємного
числа з в о д и т ь с я до о т р и м а н н я інверсії п - р о з р я д н о г о коду модуля цього числа
З н о в у в а р т о н а в е с т и кілька п р и к л а д і в
5, = 0 0 1 0 1 , -5=10101 .
10 обернений КОД 10 обернений код
25, =011001 , -25 = 111001 -
10 обернений код 10 обернений код

2 . 5 . 3 . Доповняльний код

Доповняльний код будується на основі о б е р н е н о г о . Я к щ о число додатне, то не п р о ­


в о д и т ь с я ж о д н и х дій, я к щ о в і д ' є м н е - після і н в е р т у в а н н я до м о л о д ш о г о р о з р я д у числа
додається о д и н и ц я (рис. 2.3).

0="+"
1="-"

с,. 2

Рис. 2.3. Доповняльний код двійкового числа


Д о п о в н я л ь н и й код п - р о з р я д н о г о д в і й к о в о г о числа Є в и з н а ч а є т ь с я як
( С при Є > 0;
С-\С\, приС< 0;

де С - величина, рівна вазі розряду, я к и й іде за старшим розрядом використаної роз­


рядної сітки (для дробових чисел С = 2, а для цілих чисел С = 2" ). Діапазон зміни чисел у +1

прямому коді 0 <\Є < А. Ц и ф р о в и м и розрядами доповняльного коду додатного числа ви­
ражається модуль цього числа. Як уже було зазначено, доповняльний код від'ємного числа
зручно отримувати через обернений код шляхом додавання 1 до молодшого розряду обер­
неного коду
Розглянемо приклади
5, =00101 - 5 , =11011
10 доповняльний код 10 доповняльний код
25, =011001 . -25 = 100111
10 доповняльний код 10 доповняльний код
12, =01100 - 1 2 = 10100
10 доповняльний код 10 доповняльний код

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


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

2.6. Формати даних


2.6.1. Способи представлення чисел
Розряд двійкового числа п р е д с т а в л я є т ь с я в к о м п ' ю т е р і д е я к и м т е х н і ч н и м п р и с т р о ­
єм, наприклад т р и г е р о м , д в о м р і з н и м станам якого п р и п и с у ю т ь з н а ч е н н я 0 та 1. О д и н
двійковий р о з р я д я к и й м о ж е н а б у в а т и ці два з н а ч е н н я , є н а й м е н ш о ю о д и н и ц е ю і н ф о р ­
мації, названої бітом. Н а б і р відповідної кількості т а к и х п р и с т р о ї в слугує для п р е д с т а в ­
лення б а г а т о р о з р я д н о г о д в і й к о в о г о числа (або в з а г а л ь н о м у в и п а д к у - д в і й к о в о г о коду
слова). Розрядність слова м о ж е б у т и від 1 біта до д о в і л ь н о ї к і л ь к о с т і п бітів. С л о в о із
8 бітів називають б а й т о м . Як п р а в и л о , коли йдеться п р о к о м п ' ю т е р н у техніку, всі в и м і р и
кількості розрядів н а в о д я т ь с я в бітах а б о б а й т а х Ч а с т о с л о в о м іще н а з и в а ю т ь ч и с л о із
32 бітів, а число із 16 бітів - півсловом.
Коли деяке ч и с л о м а є 32 біти, то г о в о р я т ь , що в о н о п р е д с т а в л е н е з о д и н а р н о ю т о ч ­
ністю, я к щ о ж 64 біти - з п о д в і й н о ю точністю
Числові дані в комп'ютері з а з в и ч а й п р е д с т а в л я ю т ь с я т р ь о м а с п о с о б а м и
• як цілі або д р о б о в і числа з ф і к с о в а н о ю комою, які с к л а д а ю т ь с я із деякої кількості
бітів;
• як числа з р у х о м о ю (ще деколи в ж и в а ю т ь " п л а в а ю ч о ю " ) комою, к о ж н е з я к и х м а є
порядок та м а н т и с у
• як двійково кодовані десяткові, де байт (чи півбайта) п р е д с т а в л я є одну д е с я т к о в у
цифру, а послідовність б а й т і в (чи півбайтів) п р е д с т а в л я є ч и с л о .
Я к щ о певне число більше за м а к с и м а л ь н е , яке м о ж е б у т и представлене п е в н о ю кіль­
кістю розрядів, то з н а ч е н н я числа м о ж е втрачатися. Таку ситуацію н а з и в а ю т ь п е р е п о в н е ­
нням Р о з р о б н и к и к о м п ' ю т е р а а б о п р о г р а м и п о в и н н і п е р е д б а ч и т и , числа якої в е л и ч и н и
будуть використовуватись, і в и д і л и т и для їх п р е д с т а в л е н н я т а к у кількість р о з р я д і в , щ о б
значення числа не в т р а ч а л о с ь
Сучасні персональні к о м п ' ю т е р и в и к о р и с т о в у ю т ь слова р о з р я д н і с т ю від о д н о г о до
16 байтів. Спеціалізовані к о м п ' ю т е р и м о ж у т ь в и к о р и с т о в у в а т и слова й іншої р о з р я д -
ності, н а п р и к л а д 128 байтів
Для к о д у в а н н я символів в и к о р и с т о в у ю т ь с я спеціальні коди, серед я к и х н а й п о ш и р е ­
ніший у персональних к о м п ' ю т е р а х - а м е р и к а н с ь к и й с т а н д а р т н и й код і н ф о р м а ц і й н о г о
обміну ASCII, а в м е й н ф р е й м а х - р о з ш и р е н и й д в і й к о в о - к о д о в а н и й д е с я т к о в и й код обмі­
н у E B C D I C З а з в и ч а й для п р е д с т а в л е н н я одного с и м в о л а в и к о р и с т о в у є т ь с я один б а й т

2 . 6 . 2 . Числа з фіксованою комою

У разі в и к о р и с т а н н я чисел із ф і к с о в а н о ю комою, п р е д с т а в л е н н я коми не в и к о н у є т ь ­


ся, але вважається, що вона є на п е в н і й наперед відомій позиції в і д н о с н о р о з р я д і в числа.
Найчастіше в в а ж а є т ь с я , щ о к о м а стоїть після м о л о д ш о г о р о з р я д у числа ( т а к и м ч и н о м
представляються цілі числа) а б о перед с т а р ш и м р о з р я д о м числа (таким чином представ­
ляються дробові числа), хоча м о ж л и в е застосування і змішаного варіанту. У такому форматі
представляються числа з діапазону - 1 < число < 1 (якщо є знаковий розряд) або 0 < число < І
( я к щ о знакового р о з р я д у н е м а є ) .
На рис. 2.4 п о к а з а н о п р и к л а д р о з р я д н о ї сітки к о м п ' ю т е р а ( ф о р м а т у даних) д л я пред­
ставлення двійкових чисел із ф і к с о в а н о ю комою в вигляді 3 2 - р о з р я д н и х слів д л я в и п а д -
64

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


зліва н а п р а в о .
Знак 2- 1
2" г
2-з 2-зо 2-зі

а) ао а- аг аз аж азі

Знак 2 зо 2 29 2
2 8

2 1
2 0

Ь) ао аі аг аз азо азі

Рис. 2.4. Розрядна сітка при представленні двійкових чисел з фіксованою комою:
а - кома фіксована перед старшим розрядом я,, Ь - кома фіксована після молодшого розряду а 31

Д л я к о д у в а н н я з н а к у числа в и к о р и с т о в у є т ь с я з н а к о в и й р о з р я д (а на рис. 2.4). У цьо­


0

му р о з р я д і 0 відповідає з н а к у «+», а 1 - з н а к у «-». На р о з р я д н і й сітці в к а з а н о вагу кож­


ного розряду. Найбільше додатне число, яке може бути представлене в розрядній сітці, по­
казаній на рис. 2.4 а, рівне 0,11...1=1-2" . Тут після коми розміщена 31 одиниця. А найменше
31

додатне з н а ч у щ е число рівне 0,00... 01 =2~ . Тут після коми розміщено 30 нулів.
31

В р о з р я д н і й сітці (рис. 2.4 а) м о ж у т ь б у т и представлені числа в діапазоні від -(1 -2" ) 31

до - 2 " і від +2" до +(1-2 ), що відповідає д і а п а з о н у абсолютних десяткових чисел при­


31 31 -31

б л и з н о від ( 1 - Ю ) до 10" . Ч и с л а |х| < 2' не м о ж у т ь бути представлені в розрядній сітці


- 9 9 31

і п р и й м а ю т ь с я р і в н и м и 0 (число в и х о д и т ь за р о з р я д н у сітку в п р а в о ) . Всі числа |х| >=1


т а к о ж не м о ж у т ь бути представлені в п р и й н я т і й р о з р я д н і й сітці.
Таке ч и с л о в и х о д и т ь за м е ж і сітки в л і в о (відбувається п е р е п о в н е н н я розрядної сіт­
ки), і його старші р о з р я д и ( р о з р я д и зліва від коми) втрачаються, а результат обчислень
в и я в л я є т ь с я н е п р а в и л ь н и м . Тому, з а з в и ч а й , я к щ о при в и к о н а н н і певної програми ви­
н и к а є п е р е п о в н е н н я , в а р и ф м е т и к о - л о г і ч н о м у п р и с т р о ї ф о р м у є т ь с я сигнал, я к и й фік­
сується в в і д п о в і д н о м у тригері та п о в і д о м л я є о п е р а ц і й н у систему комп'ютера п р о на­
явність переповнення.
Я к щ о кома зафіксована п р а в о р у ч від м о л о д ш о г о розряду, р о з р я д н а сітка (рис. 2.4 б)
дозволяє представляти додатні та від'ємні цілі двійкові числа, модуль я к и х 1< = |х| < = 2 - 1 , 31

що відповідає діапазону абсолютних десяткових чисел приблизно від 1 до 10 , а також 0. 9

Всі числа, м о д у л ь я к и х м е н ш и й 1 або б і л ь ш и й (2 -1), не м о ж у т ь бути представлені в


31

цій р о з р я д н і й сітці (число в и х о д и т ь за м е ж і р о з р я д н о ї сітки).


П р и в и к о н а н н і на к о м п ' ю т е р і о б ч и с л е н ь необхідно, щ о б всі вихідні та отримувані
в процесі о б ч и с л е н ь п р о м і ж н і і кінцеві дані не в и х о д и л и за діапазон чисел, які м о ж у т ь
бути представлені в цій р о з р я д н і й сітці. В і н ш о м у в и п а д к у в о б ч и с л е н н я х м о ж у т ь ви­
н и к н у т и п о м и л к и . Для ц ь о г о під час н а п и с а н н я п р о г р а м дані, що задіяні в обчисленнях,
беруться з відповідними масштабними коефіцієнтами.
П р и в и к о н а н н і н а у к о в о - т е х н і ч н и х р о з р а х у н к і в м а с ш т а б у в а н н я є простішим, я к щ о
всі числа по модулю не п е р е в и щ у ю т ь 1, т о б т о кома зафіксована перед с т а р ш и м р о з р я ­
дом числа.
К о м п ' ю т е р и , які о п р а ц ь о в у ю т ь числа в ф о р м а т і з фіксованою комою, є п р о с т і ш и м и
( м е н ш и м и за г а б а р и т а м и ) та ш в и д ш и м и п о р і в н я н о з к о м п ' ю т е р а м и , які опрацьовують
числа в ф о р м а т і з р у х о м о ю к о м о ю , але в н и х м о ж л и в е в и н и к н е н н я проблем через по-
65

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


комою, п р и ч о м у кома, я к п р а в и л о , фіксувалась перед с т а р ш и м р о з р я д о м числа. З а р а з
представлення чисел з ф і к с о в а н о ю комою в и к о р и с т о в у є т ь с я як є д и н е л и ш е в п о р і в н я н о
невеликих за своїми о б ч и с л ю в а л ь н и м и м о ж л и в о с т я м и комп'ютерах, які в и к о р и с т о в у ­
ються для у п р а в л і н н я т е х н о л о г і ч н и м и п р о ц е с а м и та о п р а ц ю в а н н я в и м і р ю в а л ь н о ї ін­
формації в р е а л ь н о м у часі.
В комп'ютерах, призначених для в и р і ш е н н я ш и р о к о г о кола о б ч и с л ю в а л ь н и х задач,
основним є представлення чисел з рухомою комою, яке не вимагає м а с ш т а б у в а н н я даних.
Однак у т а к и х к о м п ' ю т е р а х , крім п р е д с т а в л е н н я чисел в ц ь о м у ф о р м а т і , часто в и к о ­
ристовується п р е д с т а в л е н н я з ф і к с о в а н о ю комою, о с к і л ь к и на в и к о н а н н я о п е р а ц і й з та­
кими числами в и т р а ч а є т ь с я м е н ш е часу. П р и ц ь о м у в б і л ь ш о с т і в и п а д к і в ф о р м а т чисел
із фіксованою комою слугує д л я п р е д с т а в л е н н я ц і л и х д в і й к о в и х чисел (кома с т а в и т ь с я
праворуч від м о л о д ш о г о р о з р я д у числа) та в и к о н а н н я о п е р а ц і й над н и м и , щ о , з о к р е м а ,
необхідно для операцій над к о д а м и а д р е с (операцій індексної а р и ф м е т и к и ) .
Розглянемо основні ф о р м а т и чисел із ф і к с о в а н о ю к о м о ю , що в и к о р и с т о в у ю т ь с я у
сучасних комп'ютерах, та д і а п а з о н и п р е д с т а в л е н н я в н и х чисел (табл. 2.4).
Таблиця 2.4
Формати без знакового розряду
довжина Min Max
16 байт = 128 біт 0 3.40282366920938е+38
8 байт = 64 біт 0 18446744073709551615
4 байти = 32 біт 0 4294967295
2 байти = 16 біт 0 65535
1 байт = 8 біт 0 255
Формати зі знаковим розрядом (доповняльний код)
довжина Min Max
16 байт = 128 біт -1.70141183460469е+38 1.70141183460469e+38
8 байт = 64 біт -9223372036854775808 9223372036854775807
4 байти = 32 біт -2147483648 2147483647
2 байти =16 біт -32768 32767
1 байт = 8 біт -128 127

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


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

2.6.3. Числа із рухомою комою

Не з а в ж д и діапазон п р е д с т а в л е н н я чисел у ф о р м а т і з ф і к с о в а н о ю к о м о ю є д о с т а т н і м
для проведення обчислень. В т а к о м у в и п а д к у в и к о р и с т о в у є т ь с я ф о р м а т п р е д с т а в л е н н я
чисел із р у х о м о ю комою.
У загальному в и п а д к у в форматі з рухомою комою число подається у вигляді А = ± т •
q , де т - мантиса числа, q - основа порядку, ± р - п о р я д о к числа. Попередній в и р а з м о ж ­
±p

на записати як А = ± т • ± р , де у п у щ е н о основу порядку, оскільки в комп'ютерах вона не­


д д

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


5 3ам. 371.
66

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


м о ю п р е д с т а в л я ю т ь у н о р м а л і з о в а н о м у вигляді. Я к щ о в и к о н у є т ь с я нерівність q - 1 < =
| т | <1, а у в и п а д к у двійкової системи ч и с л е н н я 0.5 < = |пт| <1 ( с т а р ш и й двійковий р о з р я д
м а н т и с и д о р і в н ю є 1), то в в а ж а є т ь с я , що ч и с л о представлене в н о р м а л і з о в а н о м у вигляді.
Таким ч и н о м , у д в і й к о в о г о н о р м а л і з о в а н о г о числа у ф о р м а т і з р у х о м о ю комою м а н ­
тиса є п р а в и л ь н и м д р о б о м і у с т а р ш о м у р о з р я д і м а н т и с и з а в ж д и стоїть 1. О п е р а ц і ю
п р и в е д е н н я числа д о н о р м а л і з о в а н о г о в и г л я д у н а з и в а ю т ь нормалізацією. Н о р м а л і з а ц і я
чисел у к о м п ' ю т е р і в и к о н у є т ь с я або а п а р а т н о , а б о ж с п е ц і а л ь н о ю програмою.
Д л я п р е д с т а в л е н н я д в і й к о в о г о числа у ф о р м а т і з р у х о м о ю комою у р о з р я д н і й сітці,
наданій д л я цієї м е т и , в и д і л я є т ь с я :
• по о д н о м у р о з р я д у для п р е д с т а в л е н н я з н а к у числа Біті (поле з н а к у числа) і з н а к у
п о р я д к у Бр;
• п е в н е ч и с л о р о з р я д і в для п р е д с т а в л е н н я з н а ч е н н я п о р я д к у р;
• р о з р я д и д л я п р е д с т а в л е н н я з н а ч е н н я м о д у л я м а н т и с и т (поле м а н т и с и ) .
Н а п р и к л а д , м о ж л и в и й т а к и й варіант, коли ф о р м а т числа складається з ч о т и р ь о х п о ­
лів (рис. 2.5) т о б т о , [А] = Б г > 5 т . А т А

5 Рл т
р т л
А

Рис. 2.5. Число з рухомою комою

З а з в и ч а й у ф о р м а т і з р у х о м о ю к о м о ю з а м і с т ь п о р я д к у р в и к о р и с т о в у ю т ь так з в а н у
х а р а к т е р и с т и к у ("зміщений порядок") г = ± р + 1, де 1 - н а д л и ш о к (зсув), з н а ч е н н я якого
п і д б и р а є т ь с я т а к и м ч и н о м , щ о б у разі з м і н и з н а ч е н н я п о к а з н и к а від деякого м і н і м а л ь н о ­
го з н а ч е н н я - | р | до м а к с и м а л ь н о г о + | р | » х а р а к т е р и с т и к а г з м і н ю в а л а с я від 1 до г .
т і п тах т а х

О т ж е , х а р а к т е р и с т и к а не з м і н ю є свого знаку. У ц ь о м у в и п а д к у відпадає необхідність у


в і д о б р а ж е н н і з н а к у п о р я д к у Б . Для ц ь о г о п р и й м а є т ь с я , що 1 = 2 , де к - ч и с л о розрядів,
к 1

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


Тоді ф о р м а т числа з р у х о м о ю к о м о ю м о ж н а подати так, як п о к а з а н о на рис. 2.6 (з ви­
к о р и с т а н н я м т р ь о х полів), т о б т о , [А] = 5 р т . т А

5 р. т Л
т Г А А

Рис. 2.6. Число з рухомою комою із зміщеним порядком

О д и н и ц я с т а р ш о г о р о з р я д у н о р м а л і з о в а н о ї м а н т и с и з а з в и ч а й не в і д о б р а ж а є т ь с я у
ф о р м а т і числа, т о б т о є уявною. Р о з р я д слова, в я к о м у п о в и н н а була бути відображена ця
о д и н и ц я , в и к о р и с т о в у є т ь с я я к м о л о д ш и й р о з р я д х а р а к т е р и с т и к и , або с т а р ш и й р о з р я д
м а н т и с и , що д о з в о л я є з б і л ь ш и т и д і а п а з о н п р е д с т а в л е н н я чисел у ф о р м а т і з рухомою
комою, або точність обчислень.
Таким ч и н о м , м а н т и с а в т а к о м у варіанті в і д о б р а ж а є т ь с я , п о ч и н а ю ч и з розряду, що
йде після с т а р ш о г о . Це слід в р а х о в у в а т и під час в и к о н а н н я будь-якої операції з ман­
тисою числа, і перед п о ч а т к о м о п е р а ц і й в і д н о в л ю в а т и с т а р ш и й р о з р я д м а н т и с и . Після
з а в е р ш е н н я о п е р а ц і й ф о р м у в а н н я н о р м а л і з о в а н о г о результату у відведеній для нього
р о з р я д н і й сітці, с т а р ш а о д и н и ц я м а н т и с и з н о в у в і д к и д а є т ь с я . П о р я д о к із к - р о з р я д н и м
полем м о ж е з м і н ю в а т и с я в м е ж а х від - 2 + 1 до + 2 - 1 (табл. 2.5, к = 3).
к _ 1 к_1
67

Таблиця 2.5
Прямий код Характеристика
Показник порядку Примітки
показника (показник + 4)
+3 011 111 3+4=7
+2 010 110 2+4=6
+1 001 101 1+4 = 5
0 000 100 0+4=4
-1 . 101 011 -1+4 = 3
-2 110 010 -2 + 4 = 2
-3 111 001 -3 + 4=1
000 Ознаку нуля

Як зазначалося, х а р а к т е р и с т и к а г - це п о р я д о к р з н а д л и ш к о м 1 = 2 . Вона не з м і н ю є
к_1

свого знаку і з м і н ю є т ь с я від 1 (при р = -2 ~') до 2 (при р = +2 ~' - 1). В и н я т к о м є число


к к_1 к

0, яке в и р а ж а є т ь с я н у л ь о в о ю х а р а к т е р и с т и к о ю і н у л ь о в о ю м а н т и с о ю (не о б о в ' я з к о в о ) .


О с н о в н о ю перевагою п р е д с т а в л е н н я чисел у ф о р м а т і з р у х о м о ю к о м о ю є в е л и к и й
діапазон м а ш и н н и х чисел і висока т о ч н і с т ь їхнього п о д а н н я . Діапазон в и з н а ч а є т ь с я до­
вжиною р о з р я д н о ї сітки, виділеної д л я х а р а к т е р и с т и к и , а т о ч н і с т ь в и з н а ч а є т ь с я д о в ж и ­
ною р о з р я д н о ї сітки, виділеної д л я м а н т и с и .
Особливості в и к о н а н н я о п е р а ц і й над ч и с л а м и з р у х о м о ю к о м о ю :
• збільшення мантиси у 2 рази здійснюється зсувом двійкового значення мантиси
ліворуч (у бік с т а р ш и х р о з р я д і в ) ;
• зменшення мантиси у 2 рази здійснюється зсувом двійкового значення мантиси
праворуч (у бік м о л о д ш и х р о з р я д і в ) ;
• в е л и ч и н а числа не з м і н и т ь с я , я к щ о з б і л ь ш и т и м а н т и с у в 2 р а з и і о д н о ч а с н о змен­
шити порядок на 1;
• в е л и ч и н а числа не з м і н и т ь с я , я к щ о з м е н ш и т и м а н т и с у в 2 р а з и і о д н о ч а с н о збіль­
шити п о р я д о к на 1.
Тобто ф о р м а т з р у х о м о ю комою м а є недолік, я к и й п о л я г а є у відсутності унікального
представлення д л я к о ж н о г о числа. Усі числа, що н а в о д я т ь с я на рис. 2.7, є е к в і в а л е н т н и ­
ми. Слід з а у в а ж и т и , що ц ь о г о недоліку не м а ю т ь н о р м а л і з о в а н і числа.

0 1 0 1 0 1 1 0 0 0 1 0 0 0

0 1 0 1 1 0 0 1 0 0 0 1 0 0

0 1 0 1 1 1 0 0 1 0 0 0 1 0

0 110 0 0 0 0 0 1 0 0 0 1

Рис. 2.7. Еквівалентні двійкові числа в форматі з рухомою комою

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


над порядком, так і над м а н т и с о ю .
68

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


к о м о ю з о с н о в о ю порядку, р і в н о ю ц і л о м у с т у п е н ю числа 2 (в -2'). П р и ц ь о м у порядок р
в і д о б р а ж а є т ь с я д в і й к о в и м ц і л и м ч и с л о м , а м а н т и с а т - числом, в я к о м у групи по г двій­
к о в и х р о з р я д і в з о б р а ж а ю т ь ц и ф р и м а н т и с и з о с н о в о ю системи ч и с л е н н я в.
П р и к л а д а м и в ж и в а н и х о с н о в п о р я д к у є числа 8 та 16.
В и к о р и с т а н н я д л я чисел з р у х о м о ю комою недвійкової о с н о в и п о р я д к у дещо змен­
ш у є точність о б ч и с л е н ь (при з а д а н о м у числі р о з р я д і в м а н т и с и ) , але д о з в о л я є збільшити
діапазон чисел, що п р е д с т а в л я ю т ь с я в м а ш и н і , і п р и с к о р и т и в и к о н а н н я деяких опера­
цій, з о к р е м а нормалізації, за р а х у н о к того, що з с у в п р о в о д и т ь с я відразу на кілька двій­
к о в и х р о з р я д і в . Крім того, з м е н ш у є т ь с я вірогідність п о я в и н е н о р м а л і з о в а н и х чисел в
ході о б ч и с л е н ь .
Н а п р и к л а д , у р а з і в и к о р и с т а н н я ш і с т н а д ц я т к о в и х чисел з р у х о м о ю комою число X
в в а ж а є т ь с я н о р м а л і з о в а н и м , я к щ о с т а р ш а ш і с т н а д ц я т к о в а ц и ф р а X відмінна від 0. Тоб­
то у н о р м а л і з о в а н о м у числі т р и с т а р ш і двійкові ц и ф р и м о ж у т ь дорівнювати 0. Це дещо
з м е н ш у є точність п р е д с т а в л е н н я чисел п р и ф і к с о в а н о м у числі р о з р я д і в мантиси. Я к щ о
г с т а р ш и х ш і с т н а д ц я т к о в и х р о з р я д і в м а н т и с и рівні 0, то н о р м а л і з а ц і я в ц ь о м у випадку
п о л я г а є в зсуві в л і в о м а н т и с и на г ш і с т н а д ц я т к о в и х р о з р я д і в і відповідному зменшенні
п о к а з н и к а п о р я д к у на г о д и н и ц ь . З с у в на один ш і с т н а д ц я т к о в и й р о з р я д виконується як
з с у в м а н т и с и відразу н а ч о т и р и двійкові р о з р я д и .
Розглянемо кілька п р и к л а д і в .
П р и п у с т и м о , що п о т р і б н о п о д а т и у ф о р м а т і з р у х о м о ю комою число 17. Для десят­
кової системи 17 = 17.0 х 10° = 1.7 х 10 = 0.17 х 10 . А н а л о г і ч н о в двійковій системі 17 =
і 2

1 0 0 0 1 х 2 ° = 1 0 0 0 . 1 х 2 = 1 0 0 . 0 1 х 2 = 1 0 . 0 0 1 х 2 = 1.0001 х 2 = 0.10001 х 2 . Я к щ о в и к о ­
2 2
!
2
2
2
3
2
4
2
5

р и с т а т и о с т а н н і й з а п и с , то 8-розрядна м а н т и с а числа буде рівною 10001000, а 5-розряд-


н и й п о р я д о к буде р і в н и м 00101. Тоді ч и с л о 17 в ф о р м а т і з р у х о м о ю комою в двійковій
системі м а є в и г л я д , п о к а з а н и й на рис. 2.8 а. В и к о р и с т о в у ю ч и ф о р м а т з р у х о м о ю комою
м о ж н а п р е д с т а в л я т и числа в з н а ч н о ш и р ш о м у діапазоні, ніж в и к о р и с т о в у ю ч и ф о р м а т з
ф і к с о в а н о ю комою, п р и тих с а м и х 14 р о з р я д а х . Так, на рис. 2.8 Ь) п о к а з а н о число 65536
= 0.1 х 2 у ф о р м а т і з р у х о м о ю к о м о ю , д л я п р е д с т а в л е н н я я к о г о у ф о р м а т і з фіксованою
2
17

к о м о ю п о т р і б н о було б і б р о з р я д і в .

а) 0 0 10 1 1 0 0 0 1 0 0 0

Ь) о 1 0 0 0 1 1 0 0 0 0 0 0 0

Рис. 2.8. Числа 17 а) та 65536 Ь) в двійковому форматі з рухомою комою

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


л и ш е в додатні числа. З м і щ е н н я з д і й с н ю є т ь с я ш л я х о м д о д а в а н н я до к о ж н о г о значення
п о р я д к у ф і к с о в а н о г о числа, рівного с е р е д н ь о м у з н а ч е н н ю в е л и ч и н и діапазону м о ж л и ­
вих чисел, я к е в и б и р а є т ь с я д л я п р е д с т а в л е н н я н у л я . В п р и в е д е н и х в и щ е п р и к л а д а х я к
з м і щ е н н я п о т р і б н о в з я т и ч и с л о 16, т о м у що в о н о є с е р е д н і м м і ж 0 і 31 ( п о р я д о к м а є
5 бітів, т о м у д о з в о л я є п р е д с т а в и т и 2 = 32 значень). Будь-яке число, більше ніж 16, в полі
5

п о р я д к у буде п р е д с т а в л я т и додатне з н а ч е н н я , а м е н ш е - від'ємне. З а у в а ж и м о іще раз, що


з н а ч е н н я п о р я д к у з усіма н у л я м и та о д и н и ц я м и з а з в и ч а й резервується для спеціальних
в и п а д к і в (таких як нуль та нескінченість).
69

Повернемося до п о п е р е д н ь о г о прикладу. Ми о б ч и с л и л и 17 = 0.10001 х 2 . З м і щ е н н я 2


5

порядку рівне 16 + 5 = 21, і ч и с л о м а є вигляд, п о к а з а н и й на р и с . 2.9 а. А н а л о г і ч н о для


числа 0.25 = 1.0 х 2 будемо мати п р е д с т а в л е н н я , п о к а з а н е на рис. 2.9 Ь.
2

а) 0 10 10 1 1 0 0 0 1 0 0 0

Ь) 0 0 1 1 1 0 1 0 0 0 0 0 0 0

Рис. 2.9. Числа 17 а) та 0.25 Ь) в двійковому форматі з рухомою комою


із зміщеним порядком

Розглянемо іще один п р и к л а д числа з р у х о м о ю комою, в д а н о м у в и п а д к у н о р м а л і ­


зованого. В и р а з и м о 0.03125 в ф о р м а т і з р у х о м о ю к о м о ю із з м і щ е н н я м п о р я д к у на 16.
[0

Тоді 0.03125 = 0.00001 х 2° = 0.0001 х 2' = 0.001 х 2 = 0.01 х 2 = 0.1 х 2 . Д о д а в ш и до


]0 2
1 2 і 4

порядку з м і щ е н н я о т р и м а є м о 16 - 4 = 12. П о в н и й вигляд числа п о к а з а н о на рис. 2.10.

0 0 110 0 1 0 0 0 0 0 0 0

Рис. 2.10. Число 0.03125 в нормалізованому двійковому форматі


]0

з рухомою комою із зміщеним порядком

На рис. 2.11 наведено два п р и к л а д и в и к о р и с т о в у в а н о г о в к о м п ' ю т е р а х ф о р м а т у пред­


ставлення чисел з р у х о м о ю комою. З в е р х у наведено формат, я к и й був в и к о р и с т а н и й в
комп'ютерах C D C 6600, C D C 7000, та C Y B E R 170 ф і р м и С К С , а з н и з у - ф о р м а т , я к и й був
використаний в к о м п ' ю т е р а х системи ІВМ/370 ф і р м и I B M , п р и ч о м у т у т о с н о в о ю п о р я д ­
ку є число 16, т о м у м а н т и с а в в а ж а є т ь с я н о р м а л і з о в а н о ю , я к щ о є хоча б одна о д и н и ц я в
перших її ч о т и р ь о х р о з р я д а х .
0 1 11 12 5Э
Знак мантиси Порядок, зсунутий на 1023 Мантиса в оберненому коді
(S) (Е) (М)
1 А J
V
r-/L
"j 48 бітів
11 бІТІВ Гд і

0 1 7 8 31

Знак мантиси Порядок, зсунутий на 63 Мантиса в прямому коді


(S) (Е) (М)
V. А1 J
V /1 Y
7 бітів [o^OOoTI 2 4б і т и

Рис. 2.11. Формат з рухомою комою комп'ютерів фірм CDC та IBM

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


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

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


вується так з в а н и й ф о р м а т з р у х о м о ю - р у х о м о ю комою. Тут в и к о р и с т о в у є т ь с я два поля
порядку, як це п о к а з а н о на рис. 2.12.

Sm PI Р2 М

Рис. 2.12. Формат з рухомою-рухомою комою

Тут з н а ч е н н я числа в и з н а ч а є т ь с я з в и р а з у А = 2 , де е = Р 2 .
е Р2

2 . 6 . 4 . Стандарт 1ЕЕЕ-754

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


к о р и с т о в у є т ь с я с т а н д а р т ІЕЕЕ-754. В п о п е р е д н ь о м у пункті ми р о з г л я н у л и м о ж л и в і варі­
анти п р е д с т а в л е н н я д а н и х в ф о р м а т і з р у х о м о ю комою. До середини 80-х років в різних
к о м п ' ю т е р а х в и к о р и с т о в у в а л и с ь різні варіанти ц ь о г о п р е д с т а в л е н н я , щ о суттєво усклад­
н ю в а л о в и к о н а н н я на н и х тих с а м и х п р о г р а м . У 1985 р о ц і І н с т и т у т інженерів електро­
техніків і р а д і о е л е к т р о н і к і в (IEEE) р о з р о б и в с т а н д а р т д л я чисел з р у х о м о ю комою, я к и й
о ф і ц і й н о в і д о м и й як ІЕЕЕ-754 (1985).
С т а н д а р т ІЕЕЕ-754 для чисел з о д и н а р н о ю точністю в и к о р и с т о в у є з м і щ е н н я 8-роз-
р я д н о г о п о р я д к у на 127. Це ще один спосіб п р е д с т а в л е н н я чисел із з н а к о м без в и к о р и с ­
т а н н я з н а к у мінус. М а н т и с а м а є 23 біти. Із з н а к о в и м р о з р я д о м в к л ю ч н о повна д о в ж и н а
слова складає 32 біти (рис. 2.13).

8 9 31

Знак м а н т и с и П о р я д о к , зсунутий на 127 М а н т и с а в п р я м о м у коді


(S) (Е) (М)

Y Y —
8 бітів 23 біти

Рис. 2.13. ІЕЕЕ-754 стандарт для чисел з одинарною точністю

З н а ч е н н я числа о б ч и с л ю є т ь с я з а ф о р м у л о ю :
число = (-1) • 2 ~' • (1,М).
5 Е 27

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


о к р е м о . С у т ь н о р м а л і з а ц і ї п о л я г а є в тому, що м а н т и с а п р и в о д и т ь с я до вигляду І.ххххх,
т о б т о в о н а з н а х о д и т ь с я в м е ж а х від 1,000...0 до 1,111...1. Слід з а у в а ж и т и , що оскільки
к о ж н а м а н т и с а після н о р м а л і з а ц і ї п о ч и н а є т ь с я з 1, то нема сенсу зберігати цей розряд,
т о м у він не зберігається р а з о м з ч и с л о м . Й о г о необхідно п р о с т о враховувати під час
о п е р а ц і й над ч и с л а м и .
Ч и с л а з п о д в і й н о ю точністю в стандарті ІЕЕЕ-754 п о д а ю т ь с я 6 4 - р о з р я д н и м словом,
я к е м а є з н а к о в и й р о з р я д , 1 1 - р о з р я д н и й п о р я д о к і 5 2 - р о з р я д н у м а н т и с у (рис. 2.14). Змі­
щ е н н я п о р я д к у д о р і в н ю є 1023.
71

11 12 63
Знак мантиси Порядок, зсунутий на 1023 Мантиса в прямому коді
(8) (Е) (М)
V. /
11 бітів I !| 52 біти

Рис. 2.14. ІЕЕЕ-754 стандарт для чисел з подвійною точністю

З н а ч е н н я числа о б ч и с л ю є т ь с я з а ф о р м у л о ю :
число = (-1?-2 - - Е тз
(1, М).
Діапазон чисел, які м о ж у т ь бути представлені в ц ь о м у форматі, п о к а з а н и й на
р и с . 2.15.

переповнення від'ємні втрата втрата додатні переповнення


числа значності значності числа
м •

,308 -308 -308 , 308


-1.0x10 -1.0x10 нуль 1.0x10 1.0x10
Рис. 2.15. Діапазон чисел, які відображаються у форматі за стандартом ІЕЕЕ-754
з подвійною точністю

У табл. 2.6 наведено х а р а к т е р и с т и к и ф о р м а т і в п о д а н н я д в і й к о в и х чисел в стандарті


ІЕЕЕ-754 з о д и н а р н о ю та п о д в і й н о ю точністю.
Таблиця 2.6
Формат з подвійною
Характеристика Формат з одинарною точністю
точністю
Довжина слова 32 біти 64 біти
Мантиса (зі знаком) 24 біти 53 біти
Порядок 8 бітів 11 бітів
Зміщення 127 1023
Наближений діапазон 2 = 3.8 10
128 38
21024 307 = 9 10

Найменше нормалізоване 2-126 -з8


= 10 2-1022— Ю" 308

число
Наближена точність 2" = 10-
23 7
2-52 = Ш .15
представлення чисел

Як числа з о д и н а р н о ю точністю, так і числа з п о д в і й н о ю т о ч н і с т ю в стандарті ІЕЕЕ-


754 м а ю т ь для нуля два в а р і а н т и п р е д с т а в л е н н я . К о л и п о р я д о к і м а н т и с а рівні нулю
- число є нулем. При ц ь о м у з н а ч е н н я з н а к у є н е с у т т є в и м . На цю о б с т а в и н у п о т р і б н о
звертати увагу при проведенні операції п о р і в н я н н я числа з р у х о м о ю к о м о ю на з б і ж н і с т ь
з нулем.
Стандарт ІЕЕЕ-754 передбачає в и к о р и с т а н н я певної кількості з н а ч е н ь м а н т и с и та
п о р я д к у для п р е д с т а в л е н н я нескінчених, н е в и з н а ч е н и х та м а л и х значень. Так мінус та
плюс нескінченість подаються м а к с и м а л ь н и м з н а ч е н н я м п о р я д к у (377 для числа з о д и - 8
72

н а р н о ю точністю та 3777 для числа з п о д в і й н о ю точністю) та нульовою мантисою. Для


g

п р е д с т а в л е н н я н е в и з н а ч е н о г о з н а ч е н н я т а к о ж в и к о р и с т о в у є т ь с я м а к с и м а л ь н е значення
п о р я д к у та н е н у л ь о в а мантиса. Н е в и з н а ч е н е з н а ч е н н я н а з и в а ю т ь "не ч и с л о м " - Not a N u ­
mber (NaN). "Не ч и с л о " в и к о р и с т о в у є т ь с я , щ о б п р е д с т а в и т и з н а ч е н н я , яке не є дійсним
ч и с л о м і часто в и к о р и с т о в у є т ь с я як і н д и к а т о р п о м и л к и , н а п р и к л а д , коли відбулося ді­
л е н н я 0 на 0. Я к щ о ч и с л о є д у ж е м а л и м , то в о н о п р е д с т а в л я є т ь с я н у л ь о в и м п о р я д к о м та
н е н у л ь о в о ю м а н т и с о ю . У табл. 2.7 наведено п р и к л а д и п р е д с т а в л е н н я різних величин в
ф о р м а т і за с т а н д а р т о м ІЕЕЕ-754 д л я чисел з о д и н а р н о ю та подвійною точністю.
Таблиця 2.7
32-розрядні числа 64-розрядні числа

Приклади Знак Порядок Мантиса Знак Порядок Мантиса


NaN ? 377 8 Не нуль 0 3777 8 Не нуль
+ нескінченість 0 377 g
.оооооооо 8
0 3777 8 .000000000000000000 8

10,0 0 202 8 (1).20000000 0 8 2002 8 (1).040000000000000000 8

1,0 0 177 8 (і).оооооооо 8


0 1777 8 (1 ).000000000000000000 8

0,0 0 ооо 8 .оооооооо 8


0 оооо 8
.000000000000000000 8

Ненормалізоване 0 ооо 8
Не нуль 0 оооо 8
Не нуль
-0,0 1 ооо 8
.00000000 0 8 оооо 8
.000000000000000000 8

-1,0 1 177 8 (1).00000000 1 8 1777 8 (1).000000000000000000 8

-10,0 1 202 8 (1).20000000 1 8 2002 8 (1).040000000000000000 8

- нескінченість 1 377 8 .00000000 1 8 3777 8 .оооооооооооооооооо 8

Тут з н а к о м ? п о з н а ч е н о н е с у т т є в е з н а ч е н н я , а (1) - з н а ч е н н я , яке не зафіксовується


елементами п а м ' я т і комп'ютера.

2.6.5. Кодування алфавітно-цифрово) інформації

2.6.5.1. Двійково-кодовані десяткові числа

Вище було п о к а з а н о п р е д с т а в л е н н я в комп'ютері д а н и х у двійковій системі числення.


Далі р о з г л я н е м о , як ці в н у т р і ш н і дані м о ж у т ь бути п е р е т в о р е н і у форму, яка піддається
інтерпретації л ю д и н о ю .
Д в і й к о в о - к о д о в а н е д е с я т к о в е ч и с л о - це д е с я т к о в е число, к о ж н а ц и ф р а якого пред­
ставлена в двійковій ф о р м і . О д н а з п е р ш и х ч и с л о в а система к о д у в а н н я десяткових чисел
д в і й к о в и м кодом (Binary-coded decimal - B C D ) була в и к о р и с т а н а в великих і середнього
р о з м і р у к о м п ' ю т е р н и х системах ф і р м и I B M . С и с т е м а B C D кодує к о ж н у ц и ф р у десят­
кового числа 4 - р о з р я д н и м д в і й к о в и м кодом. Коли в и к о р и с т о в у є т ь с я 8-розрядне число,
т о б т о байт, то старші 4 біти н а з и в а ю т ь з о н о ю , а м о л о д ш і - ц и ф р о ю . Ця домовленість
п р и й ш л а з часів п е р ф о к а р т , де к о ж н а колонка карти могла мати " з о н а л ь н и й отвір" в од­
ній з д в о х верхніх стрічок і " ц и ф р о в и й о т в і р " в одній з десяти н и ж н і х стрічок. Старші
ч о т и р и р о з р я д и в байті B C D в и к о р и с т о в у ю т ь с я для п р е д с т а в л е н н я знаку, я к и й може
мати одне з трьох значень: ч и с л о без з н а к у п р е д с т а в л я є т ь с я кодом 1111; додатне число
73

представляється кодом 1100; в і д ' є м н е ч и с л о п р е д с т а в л я є т ь с я кодом 1101. К о д у в а н н я для


двійково-кодованих д е с я т к о в и х чисел п о к а з а н е в табл. 2.8.
Таблиця 2.8
Цифра Код B C D
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
Зони
1111 Без знаку
1100 Додатне
1101 Від'ємне

Як в и д н о з таблиці, шість м о ж л и в и х д в і й к о в и х значень (від 1010 до 1111) не в и к о р и с ­


товуються. Хоча втрачається п р и б л и з н о 40 % м о ж л и в и х значень, але н а б у в а ю т ь с я значні
переваги в точності. Н а п р и к л а д , д е с я т к о в е ч и с л о 0.3, п е р е т в о р е н е в д в і й к о в и й код та об­
межене 8-розрядною сіткою, п р и з в о р о т н о м у п е р е т в о р е н н і м а є з н а ч е н н я 0.296875, т о б т о
похибка складає п р и б л и з н о 1.05 %. В коді B C D ч и с л о з а п а м ' я т а є т ь с я б е з п о с е р е д н ь о як
1111 0011, не допускаючи ж о д н о ї п о м и л к и .
Ц и ф р и в коді B C D з а й м а ю т ь л и ш е ч о т и р и р о з р я д и , т о м у м о ж н а зберегти місце і
спростити о б ч и с л е н н я , р о з м і с т и в ш и п о р я д числа з о д н и м з н а к о м . Цей п р о ц е с н а з и в а ­
ється п а к у в а н н я м , а с ф о р м о в а н і числа - п а к о в а н и м и д е с я т к о в и м и ч и с л а м и .
Приклад:
Подамо число -1265 т р ь о м а б а й т а м и , в и к о р и с т о в у ю ч и паковані ц и ф р и коду B C D .
Зонне десяткове к о д у в а н н я для числа 1265 є н а с т у п н и м :
1111 0001 1111 0010 1111 0110 1111 0101
Після п а к у в а н н я о т р и м а є м о :
0001 0010 0110 0101
Додавши з н а к після ц и ф р и м о л о д ш о г о р о з р я д у і з а п о в н и в ш и ц и ф р у с т а р ш о г о р о з ­
ряду о д и н и ц я м и до 3 байтів, о т р и м а є м о :
1111 0001 001001100101 1101.
Код B C D (або його іще н а з и в а ю т ь к о д о м 8421) з н а й ш о в н а й б і л ь ш е п о ш и р е н н я в об­
числювальній техніці. Цей код з р у ч н и й д л я в и к о н а н н я п е р е т в о р е н н я з десяткової сис­
теми у двійкову і н а в п а к и . Цей код а д и т и в н и й , т о б т о сума п р е д с т а в л е н н я д в о х ц и ф р є
кодом їх суми.
Разом з тим, в и к о р и с т а н н я ц ь о г о коду п о в ' я з а н е з т р у д н о щ а м и п о ш у к у п е р е н о с у в
наступний д е с я т к о в и й р о з р я д і в а ж к і с т ю переходу до о б е р н е н о г о та д о п о в н я л ь н о г о коду
для десяткових чисел. Це п о я с н ю є т ь с я т и м , що код 8421 не є с а м о д о п о в н ю ю ч и м , т о б т о
74

інверсія його д в і й к о в и х ц и ф р не дає коду д о п о в н е н н я десяткової ц и ф р и до 9. В табл. 2.9


наведено інші ш и р о к о в ж и в а н і д в і й к о в о - д е с я т к о в і коди, а саме код з н а д л и ш к о м 3 та код
2 з 5. М о ж н а п о б у д у в а т и й інші д в і й к о в о - д е с я т к о в і коди, н а п р и к л а д 2421, 5121 тощо.
Таблиця 2.9

Десяткові Код з
Код 2 з 5
цифри надлишком 3
0 ООП 11 000
1 0100 00 011
2 0101 00 101
3 0110 00 по
4 0111 01 001
5 1000 01 010
6 1001 01 100
7 1010 10 001
8 1011 01 001
9 1100 10 100

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


ц и ф р а м и , оскільки він є с а м о д о п о в н ю ю ч и м . Крім того, легко в и з н а ч а є т ь с я перенос, так
як сума двох доданків, к о ж н е з я к и х б е р е т ь с я з н а д л и ш к о м 3, вийде з н а д л и ш к о м 6, що
в и к л ю ч а є л и ш н і кодові комбінації. Для о т р ш м а н н я п р а в и л ь н о г о коду суми з о т р и м а н о г о
р е з у л ь т а т у в і д к и д а є т ь с я 3. У д е я к и х в и п а д к а х д л я в и к о р и с т а н н я с у т т є в о , що код нуля
містить 1 і т о м у легко в і д р і з н и т и н а я в н і с т ь коду н у л я від п р о п а д а н н я коду ц и ф р и . Код з
н а д л и ш к о м 3 не д у ж е з р у ч н и й для п е р е т в о р е н н я чисел з однієї системи ч и с л е н н я в іншу.
В коді 2 з 5 десяткові ц и ф р и з о б р а ж а ю т ь с я п ' я т ь м а р о з р я д а м и , п р и ч о м у к о ж н е значення
містить дві 1. Ця н а д л и ш к о в і с т ь в и к о р и с т о в у є т ь с я д л я к о н т р о л ю п р а в и л ь н о с т і передачі
ц и ф р и . Будь-яка п о м и л к а в о д н о м у р о з р я д і п е р е т в о р ю є 0 в 1 або 1 в 0, в результаті ви­
йде більше а б о м е н ш е двох 1, що в к а ж е на помилку. П р и одночасній появі двох п о м и л о к
м о ж л и в і в и п а д к и , коли їх м о ж н а не з н а й т и ( я к щ о 0 в о д н о м у розряді п е р е т в о р ю є т ь с я в
1, а в і н ш о м у р о з р я д і 1 в 0).

2.6.4.2. Розширений двійково-кодований десятковий код обміну EBCDIC

Перед р о з р о б к о ю к о м п ' ю т е р н о ї с и с т е м и I B M System/360, ф і р м а I B M в и к о р и с т а л а


6 - р о з р я д н у версію д в і й к о в о - к о д о в а н о г о д е с я т к о в о г о числа для п р е д с т а в л е н н я символів
і знаків. Цей код м а в суттєві о б м е ж е н н я , п о в ' я з а н і з м а л о ю р о з р я д н і с т ю двійково-кодо­
в а н о г о д е с я т к о в о г о числа. П р о е к т у в а л ь н и к а м System/360 була потрібна більша і н ф о р м а ­
ційна здатність коду так с а м о як і у з а г а л ь н е н и й м е т о д з а п а м ' я т о в у в а н н я і чисел, і с и м в о ­
лів. Для того, щ о б п і д т р и м у в а т и сумісність з п о п е р е д н і м и к о м п ' ю т е р а м и і п е р и ф е р і й н и м
у с т а т к у в а н н я м , і н ж е н е р и I B M в и р і ш и л и , щ о буде к р а щ е п р о с т о р о з ш и р и т и код B C D від
6 бітів до 8 бітів. Відповідно, цей н о в и й код було н а з в а н о р о з ш и р е н и м двійково-кодова­
н и м д е с я т к о в и м кодом о б м і н у ( E B C D I C ) . Фірма I B M і тепер п р о д о в ж у є використовува­
ти код E B C D I C в м е й н ф р е й м а х і обчислювальних системах середнього розміру. В табл. 2.10
код E B C D I C п о к а з а н о в з о н а л ь н о - ц и ф р о в і й ф о р м і .
75

Таблиця 2.10
Цифра
Зона 0000 (KKH 0010 ООП 0100 0101 0110 Olli 1000 1001 1010 1011 1100 1101 1110 F
(XXX) N1 IL son STX F.TX PI-' irr 1С DEL SMM VT FF C R SO Sl
(XX) 1 [>[ .К IX'1 002 тм RI:S N1. BS II CAN EM er CA 11 11 s IGS 1RS ins
0010 OS SOS FX BYP LF етв ESC SM cm LNQ A C K BEL
ООП SYN PN RS uc: EOT сиз IX'4 NA К Sl 'H
0100 SP < ( + 1
0101 & s * ) -.
оно — / •i >
Olli # © = "

1000 a b с d с r g Ii і
1001 j k 1 m П 0 P 4 r
1010 s I и V w X у z
1011 -
1100 л В С 1) і: ]• Ii II I
1101 J К L M N 0 P У R

1110 s T U V w X Y /,

1111 0 1 1 4 5 7 8
3 6 9

З н а к и представлені ш л я х о м д о д а в а н н я бітів до з о н н и х бітів. Н а п р и к л а д , з н а к у а


відповідає код 1000 0001, а ц и ф р і 3 - код 1111 0011. З а у в а ж и м о , що є д и н а р і з н и ц я м і ж
верхніми і н и ж н і м и с и м в о л а м и п о л я г а є в п о з и ц і ї р о з р я д у 2, що д о з в о л я є з р о б и т и пере­
т в о р е н н я від верхніх д о н и ж н і х с и м в о л і в (або н а в п а к и ) ш л я х о м п е р е к л ю ч е н н я о д н о ­
го двійкового р о з р я д у . З о н а л ь н і біти т а к о ж р о б л я т ь л е г ш о ю д л я п р о г р а м і с т а п е р е в і р к у
правильності вхідних даних. Розшифрування абревіатур з табл. 2. 10 наведено в табл. 2.11.
Таблиця 2.11
NULL Null TM Tape mark ETB End of transmission block
SOH Start of heading RES Restore ESC Escape
STX Start of text NL New line SM Set mode
ЕТХ End of test BS Backspace CU2 Customer use 2
PF Punch off IL Idle ENQ Enquiry
НТ Horizontal tab C A N Cancel ACK Acknowledge
LC Lowercase EM End of medium BEL Ring the bell (beep)
DEL Delete cc Cursor Control SYN Synchronous idle
RLF Reverse if needed c u i Customer use 1 PN Punch on
SMM Start manual message IFS Interchange file separator RS Record separator
VT Vertical tab IGS Interchange group separator UC Uppercase
FF Form feed IRS Interchange record separator EOT End of transmission
CR Carriage return IGS Interchange unit separator сиз Customer use 3
SO Shift out DS Digit select DC4 Device control 4
Sl Shift in SOS Start of significance NAK Negative acknowledgement
DLE Data link escape FS Field separator SUB Substitute
DC1 Device control 1 BYP Bypass SP Space
DC2 Device control 2 LF Line feed

2.6.4.3 Американський стандартний код інформаційного обміну ASCII

Американський стандартний код і н ф о р м а ц і й н о г о обміну (American Standard Code for


Information Interchange (ASCII)) з'явився завдяки зусиллям р о з р о б н и к і в п о к р а щ и т и засоби
передачі даних між системами. М і ж н а р о д н а організація стандартизації ISO з а п р о п о н у в а л а
цей 7-розрядний код взамін 5-розрядного коду, я к и й використовувався в телетайпах.
Код A S C I I в и з н а ч а є коди для 32 с и м в о л і в к е р у в а н н я , 10 ц и ф р , 52 букв, 32 спеціаль­
них символів (таких як $ та #), а т а к о ж д л я с и м в о л у і н т е р в а л у (табл. 2.12). С т а р ш и й в о с ь ­
мий біт було введено д л я з а б е з п е ч е н н я п е р е в і р к и на парність. Цей біт д о з в о л я є в и я в л я -
76

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


числення.
Таблиця 2.12
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
000 NUL SOH S I X ЕТХ EOT ENQ A C K BEL BS TAB LF VT EE CR SO SI
001 DLE DC1 DC2 DC3 DC4 N A K SYN ETB C A N E M SUB ESC FS GS RS US
010 ! " # $ % & 1
( ) * + — /
011 0 1 2 3 4 5 6 7 8 9 ; < = > ?

100 @ А В с D E F G H I J К L M N О
101 Р Q R S T U V W X Y z I \ 1 A
110 - а Ь с d с 1' о h і j k 1 m n 0
о
111 Р Ч X s t u V w X У z 1 1 ) DEL
-
Р о з ш и ф р у в а н н я а б р е в і а т у р з табл. 2.12 наведено в табл. 2.13.
Таблиця 2.13
Лбіісвіатура Po;HUH<j>pvBaHHn aur.tificbKoio Розшифрування українською
NUL NULL Пусто
SOU START OF HEADING Початок заголовка
STX START OF TEXT Початок т е к с т \
ЕТХ END OF TEXT Кінець ТЄКСТУ
EOT EN)) OF TRANSMISSION Кінець передачі
1-М.) ENQUIRY Хто там?
Лі 'К ACKNOWLEDGE Підівердження
BEL BELL Дзвінок
1)S BACKSPACE Повернення на крок
TAB HORIZONTAL TAB! ILATION Горизонтальна табуляція
I.I- LINEFEED Подача нової стрічки
VI' VERTICAL TABULATION Вертикальна табуляція
FF FORM FEED Подача нової форми
OR CARRIAGE RETURN Повернення карсгки
SO SHIFT OUT Вихід
SI SHUT IN В\іц
DLL DATA LANK ESCAPE Авторепстр 1
IX'l DEVICE CONTROL ONE Контроль пристрою 1
DC2 DEVICE CONTROL TWO Контроль пристрою 2
ОСІ DEVICE CONTROL THREE Контроль пристрою 3
IX "4 DEVICE CONTROL FOUR Контроль присгрою 4
NAK. NEC ATI VI-: AC 'KN( )WI .EDO! 1 Ні
SYN SYNCHRONOUS IDLE Синхронізація
ETB ENI) ()I- TRANSMISSK)N BLOCK Кінець блока
CAN CANOEI. Анулювання
F.M END OF MEDIl FM Кінець носія
sun SUBSTTrUTE Заміна
ESC ESCAPE Авторегістр 2
FS FILE SEPARATOR Розділювач файлів
RS RECORD SEPARATOR Розділювач записів
1!S UNO' SEPARATOR Розділювач елементів
DEL) DELETE Видалення

З п і д в и щ е н н я м н а д і й н о с т і к о м п ' ю т е р н о ї техніки в а ж л и в і с т ь біта парності знизилась,


т о м у на п о ч а т к у 80-х р о к і в й о г о стали в и к о р и с т о в у в а т и д л я р о з ш и р е н н я набору кодова­
н и х с и м в о л і в в м е ж а х від 128 до 255 . Це м о ж у т ь б у т и , н а п р и к л а д , математичні с и м в о ­
!0 [0

ли, або с и м в о л и і н о з е м н и х м о в .

2.6.4.4. Стандарт кодування символів Unicode

Коди E B C D I C т а A S C I I з а б е з п е ч и л и к о д у в а н н я б у к в л а т и н с ь к о г о а л ф а в і т у . З ме­
т о ю з а б е з п е ч е н н я к о д у в а н н я б у к в і н ш и х а л ф а в і т і в т а п і д т р и м к и м о в н а р о д і в світу в
1991 році було з а п р о п о н о в а н о код під н а з в о ю Unicode.
77

Unicode - це 16-розрядний алфавіт, с у м і с н и й з A S C I I та п о г о д ж е н и й з м і ж н а р о д н и м


алфавітом ISO/IEC 10646-1. О с к і л ь к и 16-ма р о з р я д а м и м о ж н а з а к о д у в а т и 64К символів,
цього д о с т а т н ь о для к о д у в а н н я всіх б у к в а л ф а в і т і в народів світу.
Кодовий простір коду Unicode в м і щ у є 5 ч а с т и н , як це п о к а з а н о в табл. 2.14.
Таблиця 2.14
Кількість Шістнадцяткові значення
Тип символу Опис набору символів
символів символів
Латинський, кирилиця, Від 0000
Алфавіти 8192
грецький і т.д. до 1FFF
Графічні мітки, Від 2000
Символи 4096
математичні символи і т.д. до 2FFF
Китайські, японські і
Від 3000
СІК корейські фонетичні 4096
до 3FFF
символи і пунктуації
Уніфіковані китайські, Від 4000
Han 40960
японські і корейські до DFFF
Розширення чи надлишок Від Е000
4096
від Нап до EFFF
Вказані Від F000
4096
користувачем до FFFF

2.7. Короткий зміст розділу


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

2.8. Література для подальшого читання


Еволюція сисем ч и с л е н н я п о к а з а н а в р о б о т і [1]. У р о б о т а х [2-5] о п и с а н о п о з и ц і й н і
системи числення та п р е д с т а в л е н н я д а н и х у двійковому, в і с і м к о в о м у та ш і с т н а д ц я т к о -
вому кодах, п о к а з а н о п е р е в е д е н н я чисел із системи ч и с л е н н я з о с н о в о ю к до десяткової,
та переведення чисел із десяткової до системи ч и с л е н н я з о с н о в о ю к, а т а к о ж о п и с а н о
представлення чисел із з н а к о м в п р я м о м у , о б е р н е н о м у та д о п о в н я л ь н о м у кодах. О с о б л и ­
вості п р е д с т а в л е н н я чисел в ф о р м а т і з р у х о м о ю комою, в к л ю ч а ю ч и і с т а н д а р т ІЕЕЕ-754,
78

п о д а н о в р о б о т і [6]. Д е т а л ь н а і н ф о р м а ц і я п р о Unicode м о ж е бути знайдена на сторінці


Unicode Consortium www.unicode.org, т а к с а м о як в описі с т а н д а р т у The Unicode Standard,
Version 3.0 (2000). С т о р і н к а International Standards Organization ISO м о ж е б у т и знайдена
за а д р е с о ю www. iso.ch. Багато і н ф о р м а ц і ї п р о с т а н д а р т и є т а к о ж на сторінці American
National Standards Institute www.ansi.prg.

2.9. Література до розділу 2


1. Knuth, Donald Е. The Art of Computer Programming,3rd ed. Reading, M A : Addison-Wesley,
1998.
2. Карцев M. А. Арифметика цифровых машин. - M . : Наука, 1969.
3. Каган Б. М. Электронные вычислительные машины и системы. - М.: Энергия, 1979.
4. Рабинович 3. Л., Раманаускас В. А. Типовые операции в вычислительных машинах. - К.:
Техніка, 1980. - 308 с.
5. Корнейчук В. И., Тарасенко В. П. Основы компьютерной арифметики. - К. Корнейчук, 2002.
- 176 с.
6. Goldberg, David. "What Every Computer Scientist Should Know About Floating-Point Arithmet­
ic." A C M Computing Surveys 23:1 March 1991. pp. 5-47.

2. TO. Питання до розділу 2


1. Що таке система числення?
2. Що таке позиційна система числення?
3. Що таке основа системи числення?
4. Чому двійкові і десяткові системи числення названі позиційними?
5. Запишіть довільне число в позиційній системі числення та його кількісний еквівалент.
6. Поясніть зв'язок вісімкової та шістнадцяткової систем числення з двійковою системою
числення.
7. Поясніть правило переведення чисел із системи числення з основою k до десяткової.
8. Поясніть правило переведення чисел із десяткової системи числення до системи числен­
ня з основою k.
9. Що означають слова біт, байт, слово?
10. Назвіть три способи представлення двійкових чисел із знаком в комп'ютерах, і поясніть
їх відмінності.
11. Поясніть суть оберненого коду представлення двійкових чисел із знаком.
12. Поясніть суть доповняльного коду представлення двійкових чисел із знаком.
13. Поясніть суть прямого коду представлення двійкових чисел із знаком.
14. Яке саме з трьох цілочисельних представлень використовується частіше всього в комп'ю­
тері?
15. Який діапазон представлення двійкових чисел із знаком в прямому, оберненому та допо­
вняльному кодах?
16. Що таке переповнення, і як воно може бути виявлене?
17. Як переповнення для чисел без знаку відрізняється від переповнення для чисел із зна­
ком?
18. Назвіть три способи представлення числових даних в комп'ютері.
19. Що означає представлення числа з одинарною та з подвійною точністю?
20. Де розміщується кома при представленні чисел з фіксованою комою?
21. На якій позиції розміщується кома при представленні цілих чисел?
79

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


23. Яке найбільше ціле додатне число може бути представлене в n-розрядній сітці?
24. Яке найбільше дробове додатне число може бути представлене в n-розрядній сітці?
25. Яке найменше ціле додатне число може бути представлене в n-розрядній сітці?
26. Яке найменше дробове додатне число може бути представлене в n-розрядній сітці?
27. Яке найбільше ціле від'ємне число може бути представлене в n-розрядній сітці?
28. Яке найбільше дробове від'ємне число може бути представлене в n-розрядній сітці?
29. Яке найменше ціле від'ємне число може бути представлене в n-розрядній сітці?
30. Яке найменше дробове від'ємне число може бути представлене в n-розрядній сітці?
31. Які є три складові частини чисел з рухомою комою?
32. Що таке зміщений порядок і яка мета його застосування?
33. Яка перевага використання зміщення взамін знакового біта в порядку?
34. Які найбільші та найменші додатні і від'ємні числа можуть бути представлені в форматі
ІЕЕЕ-754?
35. Чому використовується представлення чисел з рухомою комою в нормалізованій формі?
36. Що таке нормалізація?
37. Чому упускається одиниця старшого розряду нормалізованої мантиси при зберіганні
числа з рухомою комою?
38. Скільки розрядів має число з рухомою комою в форматі ІЕЕЕ-754 з одинарною точністю?
39. Скільки розрядів має число з рухомою комою в форматі ІЕЕЕ-754 з подвійною точністю?
40. Які є переваги та недоліки використання відмінної від 2 основи порядку для чисел з ру­
хомою комою?
41. Назвіть особливості виконання операцій над числами з рухомою комою.
42. Коли використовується представлення чисел з поблоково-рухомою комою?
43. В яких випадках використовується формат представлення чисел з рухомою-рухомою
комою?
44. Поясніть суть кодування чисел кодом BCD.
45. Приведіть двійково-десятковий код з 2 з 5 та назвіть вигоди від його використання.
46. Приведіть двійково-десятковий код з надлишком 3 та назвіть вигоди від його викорис­
тання.
47. Поясніть суть кодування чисел кодом EBCDIC.
48. Що таке код ASCII і чим він відрізняється від коду BCD?
49. Скільки розрядів використовується в коді Unicode для представлення символу?
50. Чому був запроваджений стандарт кодування символів Unicode?

2.11. Задачі до розділу 2


1. Запишіть довільне число в двійковій системі числення та його кількісний еквівалент.
2. Запишіть довільне число в вісімковій системі числення та його кількісний еквівалент.
3. Запишіть довільне число в шістнадцятковій системі числення та його кількісний екві­
валент.
4. Виконати наступні перетворення, використовуючи віднімання або ділення з остачею:
a. 658 = 10 ;
b. 477,„ = ,
с 518 = _
10

d. 5401 = .10

5. Виконати наступні перетворення, використовуючи віднімання або ділення з остачею:


а. 488.. =
80

b.
с. 7
d.
9
6. Перевести наступні десяткові дробові числа в двійкові, обмежившись шістьма розряда­
ми справа після коми:
a. 36.78125
b. 294.03125
c. 498.796875
d. 26.1240234375
7. Перевести наступні десяткові дробові числа в двійкові, обмежившись шістьма розряда­
ми справа після коми:
a. 35.84375
b. 47.55
c. 50.90625
d. 74.874023
8. Представити наступні десяткові числа 8-розрядними двійковими із знаком в обернено­
му і доповняльному кодах:
a. 67
b. 52
c. 219
d. 207
9. Використовуючи 3-розрядні слова, назвати всі можливі двійкові числа із знаком та їх
десяткові еквіваленти при їх представленні в:
a. Прямому коді
b. Оберненому коді
c. Доповняльному коді
10. Використовуючи 4-розрядні слова, назвати всі можливі двійкові числа із знаком та їх
десяткові еквіваленти при їх представленні в:
a. Прямому коді
b. Оберненому коді
c. Доповняльному коді
11. Визначити значення двійкового числа із знаком 1001, представленого в оберненому коді,
в десятковій системі.
12. Для числа з рухомою комою, яке має 3-бітовий порядок і 5-бітову мантису із знаком знайти:
a. Найбільше додатне та найменше від'ємне нормалізовані числа.
b. Зміщення порядку, при якому всі значення порядку є від'ємними.
13. Використовуючи 14-розрядний формат числа, причому 5 розрядів - для представлення
порядку, 8 розрядів - для представлення нормалізованої мантиси та один для її знаку:
a. Показати, як в цьому форматі будуть представлені числа 100.0 та 0.25.
b. Додати ці два числа в названому форматі.
14. Які найбільші та найменші додатні і від'ємні числа можуть бути представлені в форматі
ІЕЕЕ-754?
15. Записати в десятковій системі 32-розрядне число F0ABCD78, представлене в форматі
IEEE з рухомою комою. Тут для запису числа використана шістнадцяткова система.
16. Показати, як в форматі ІЕЕЕ-754 з рухомою комою можуть бути представлені наступні
числа: + 1;-1; 356*2 .
33

17. Записати число N = -1 в форматі ІЕЕЕ-754.


18. Записати число N = -1.5 в форматі ІЕЕЕ-754.
81

19. Описати діапазони представлення чисел при використанні форматів з фіксованою і ру­
хомою комою
20. Вибрати формат представлення даних який забезпечує точність до 8 десяткової цифри
та динамічний діапазон від 10 до 10 . Тут число в дужках показник степеня
25 25

21. Приведіть діапазони представлення чисел при використанні відмінної від 2 основи по­
рядку для формату з рухомою комою
22. Показати як в форматі ІЕЕЕ-754 з рухомою комою можуть бути представлені наступні
числа:+1;-1; 356*2"
23. Вибрати формат представлення даних, який забезпечує точність до 12 десяткової цифри
та динамічний діапазон від 10" до 10 . Тут число в дужках показник степеня
22 22

24. Декодувати наступний лист в 7-розрядному АБСІІ коді без біта парності: 1001010
1001111 1001000 1001110 0100000 1000100 1000101
Розділ З

і пртрам & комп'ютері


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

3.1. Кодування та виконання команд в комп'ютері


Більшість сучасних к о м п ' ю т е р і в п р а ц ю ю т ь з а п р и н ц и п о м п р о г р а м н о г о керування,
згідно з я к и м над д а н и м и в и к о н у ю т ь с я операції, т и п я к и х в к а з у є т ь с я командами, які
зберігаються в тій же п а м ' я т і , що і дані. П о с л і д о в н і с т ь к о м а н д , за я к и м виконується за­
дача, н а з и в а є т ь с я п р о г р а м о ю . Д л я того, щ о б в и к о н а т и на к о м п ' ю т е р і задачу, необхідно:
• з а б е з п е ч и т и в и б і р к у к о м а н д п р о г р а м и із його п а м ' я т і в заданій послідовності,
о р г а н і з у в а в ш и з в е р н е н н я до неї за в і д п о в і д н и м и а д р е с а м и ;
• з а б е з п е ч и т и р о з п і з н а в а н н я т и п і в в и к о н у в а н и х операцій;
• організувати з в е р н е н н я до п а м ' я т і за в і д п о в і д н и м и а д р е с а м и для вибірки необхід­
н и х для в и к о н а н н я к о ж н о ї к о м а н д и даних;
• о р г а н і з у в а т и в и к о н а н н я над д а н и м и о п е р а ц і й відповідно до вказівок команд;
• з а п а м ' я т а т и результати о б ч и с л е н ь .
Р о з г л я н е м о як це в і д б у в а є т ь с я в комп'ютері детальніше.
83

3.1.1. Кодування команди та програми


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

коп А

0 к-1 0 т-1

Рис. 3.1. Кодування команди

Поле коду операції (КОП) з а й м а є k р о з р я д і в . Н и м м о ж е бути з а к о д о в а н о до N = 2 k

різних операцій. Кількість д в і й к о в и х р о з р я д і в , які в і д в о д я т ь с я під код операції, в и б и р а ­


ється т а к и м ч и н о м , щ о б н и м и м о ж н а було з а к о д у в а т и всі в и к о н у в а н і в д а н о м у к о м п ' ю т е ­
рі операції. Я к щ о д е я к и й к о м п ' ю т е р м о ж е в и к о н у в а т и Nc р і з н и х о п е р а ц і й , то м і н і м а л ь н а
розрядність п о л я коду операції k в и з н а ч а є т ь с я н а с т у п н и м ч и н о м : k = [log N c ] , де в и р а з в
дужках означає з а о к р у г л е н н я до б і л ь ш о г о цілого.
Поле адреси (адресна ч а с т и н а ) з а й м а є m р о з р я д і в . В н ь о м у з н а х о д я т ь с я адреси опе­
рандів. К о ж н а адреса з а й м а є пт. р о з р я д і в , де і - н о м е р а д р е с и (і=1,2,...1), 1 - кількість
адресних полів. К о ж н о ю адресою м о ж н а а д р е с у в а т и п а м ' я т ь є м н і с т ю 2 слів. Д е т а л ь н а
т і

інформація п р о з в ' я з о к між є м н і с т ю п а м ' я т і та р о з р я д н і с т ю адреси наведена в розділі 9,


в якому о п и с а н а будова пам'яті.
Розмір к о м а н д и k + m п о в и н е н бути у з г о д ж е н и м з р о з м і р о м даних, т о б т о б у т и з н и м
однаковим або к р а т н и м ц і л о м у числу, що с п р о щ у є о р г а н і з а ц і ю р о б о т и з п а м ' я т т ю . Як
правило, р о з м і р к о м а н д и р і в н и й 8, 16, 32 біти.
П р и написанні п р о г р а м и крім д в і й к о в о ї м о ж у т ь в и к о р и с т о в у в а т и с ь й інші ф о р м и
представлення команд: вісімкова, ш і с т н а д ц я т к о в а , с и м в о л ь н а ( м н е м о н і ч н а ) .
В и к о р и с т а н н я вісімкового і ш і с т н а д ц я т к о в о г о к о д у в а н н я д о з в о л я є с к о р о т и т и з а п и ­
си і с п р о с т и т и р о б о т у програміста. Як відомо 3 д в і й к о в и х р о з р я д и (тріада) з а м і н ю ю т ь с я
на 1 в і с і м к о в и й , а 4 д в і й к о в и х р о з р я д и ( т е т р а д а ) - на 1 ш і с т н а д ц я т к о в и й . П р и к л а д :
(000011111111) = (0377) = ( 0 F F )
2 8 ;6

Мнемонічне кодування спрощує процес написання, читання і відлагодження про­


грами. О с н о в н и й п р и н ц и п такого к о д у в а н н я - к о ж н а к о м а н д а п р е д с т а в л я є т ь с я 3-х або
4-х б у к в е н и м с и м в о л о м , я к и й п о к а з у є н а з в у к о м а н д и . Деякі п р и к л а д и м н е м о н і ч н о г о к о ­
дування:
A D D - додати (add),
SUB - в і д н я т и (subtract),
M P Y - п е р е м н о ж и т и (multiply),
D I V - поділити (divide),
L O A D - зчитати дані з п а м ' я т і (load data from memory),
S T O R E - з а п и с а т и дані в п а м ' я т ь (store data to memory).
84

О п е р а н д и т а к о ж п р е д с т а в л я ю т ь с я с и м в о л і ч н о . Н а п р и к л а д к о м а н д а A D D R, Y озна­
чає д о д а в а н н я вмісту к о м і р к и п а м ' я т і Y до в м і с т у регістра R. З а у в а ж и м о , що операція
в и к о н у є т ь с я над в м і с т о м , а не над адресою к о м і р к и п а м ' я т і та регістра.
Таким ч и н о м , з ' я в л я є т ь с я м о ж л и в і с т ь н а п и с а н н я м а ш и н н и х п р о г р а м в символічній
ф о р м і . П о в н и й набір с и м в о л і ч н и х н а з в і п р а в и л а їх в и к о р и с т а н н я у т в о р ю ю т ь мову п р о ­
г р а м у в а н н я , в і д о м у я к асемблерна мова. С и м в о л і ч н і імена н а з и в а ю т ь с я м н е м о н і ч н и м и ,
а п р а в и л а їх в и к о р и с т а н н я д л я с т в о р е н н я к о м а н д і п р о г р а м н а з и в а ю т ь с я синтаксисом
мови.
П р о г р а м а , я к а п е р е в о д и т ь із м н е м о н і ч н о г о коду асемблерної м о в и в м а ш и н н и й , на­
з и в а є т ь с я а с е м б л е р о м . К о м а н д и , які в и к о р и с т о в у ю т ь с я для переводу вихідної п р о г р а м и
в асемблерну, н а з и в а ю т ь с я к о м а н д а м и асемблера. Ці к о м а н д и в к а з у ю т ь як інтерпретува­
ти назви, де р о з м і с т и т и п р о г р а м у в пам'яті, я к а кількість комірок пам'яті необхідна для
з б е р і г а н н я даних.
Асемблерна м о в а є д у ж е далекою від м о в и л ю д и н и і з а с т а в л я є програміста думати
в и х о д я ч и з п р и н ц и п і в п о б у д о в и к о м п ' ю т е р а . Тому були с т в о р е н і м о в и високого рівня та
к о м п і л я т о р и , які п е р е в о д я т ь п р о г р а м и з ц и х м о в на м о в у асемблера. В и к о р и с т а н н я мов
високого р і в н я м а є ц і л и й р я д переваг в п о р і в н я н н і з в и к о р и с т а н н я м асемблера. П о - п е р ­
ше, п р о г р а м і с т п и ш е п р о г р а м и на мові, близькій до його м о в и с п і л к у в а н н я . Більше того,
м о в и високого р і в н я о р і є н т у ю т ь с я на класи в и р і ш у в а н и х задач. По-друге, скорочується
час н а п и с а н н я п р о г р а м . І п о - т р е т є , м о в и високого р і в н я є н е з а л е ж н и м и від типу та архі­
т е к т у р и комп'ютера, що д о з в о л я є в и к о р и с т о в у в а т и написані на ц и х мовах програми на
всіх комп'ютерах, а п р о г р а м і с т а з в і л ь н и т и від з н а н н я 'їх с т р у к т у р и та організації р о б о т и .
Р а з о м з т и м , хоча більшість п р о г р а м сьогодні п и ш у т ь с я на мовах високого рівня,
асемблерна м о в а є к о р и с н и м з а с о б о м для н а п и с а н н я м а ш и н н и х к о м а н д з а в д я к и близь­
кості до м а ш и н н о ї м о в и , н а о ч н о с т і та к о м п а к т н о с т і , і ми т а к о ж будемо її для ц ь о г о в и ­
користовувати.

3.7.2. Порядок виконання команд

К о м а н д и з б е р і г а ю т ь с я в о с н о в н і й п а м ' я т і к о м п ' ю т е р а за в і д п о в і д н и м и адресами. Для


того, щ о б в и к о н а т и к о м а н д у та з д і й с н и т и о б р о б к у даних, к о м а н д у та дані потрібно зчи­
тати з о с н о в н о ї п а м ' я т і та заслати до в і д п о в і д н и х регістрів п р о ц е с о р а . К о м п ' ю т е р в и к о ­
нує к о ж н у к о м а н д у я к послідовність п р о с т и х о п е р а ц і й :
1. Вибірка чергової к о м а н д и із о с н о в н о ї пам'яті.
2. В и з н а ч е н н я т и п у в и б р а н о ї к о м а н д и , т о б т о її д е ш и ф р у в а н н я .
3. В и з н а ч е н н я а д р е с даних, необхідних для в и к о н а н н я цієї к о м а н д и .
4. В и к о н а н н я о п е р а ц і й п е р е с и л а н н я д а н и х ( з ч и т у в а н н я д а н и х із пам'яті в регістри
процесора).
5. В и к о н а н н я операції в і д п о в і д н о до її коду в полі коду операції команди.
6. В и з н а ч е н н я адрес, за я к и м и з а п а м ' я т о в у ю т ь с я результати.
7. З а п а м ' я т о в у в а н н я результатів.
8. Підготовка до в и к о н а н н я н а с т у п н о ї к о м а н д и , т о б т о о б ч и с л е н н я її адреси.
На рис. 3.2 п о к а з а н а діаграма ц и к л у в и к о н а н н я к о м а н д и , п р и ч о м у в н и ж н і й стрічці
наведені операції, які в и к о н у ю т ь с я всередині п р о ц е с о р а , а в верхній стрічці - операції
з а п и с у та в и б і р к и із о с н о в н о ї пам'яті. О п е р а ц і ї 3 та 4 м о ж у т ь п о в т о р ю в а т и с ь стільки
85

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


при виконанні багатомісних операцій. А н а л о г і ч н о м о ж у т ь п о в т о р ю в а т и с ь операції 6 та
7, я к щ о о т р и м а н о кілька результатів. П р и о б р о б ц і декількох д а н и х за однією к о м а н д о ю
операції 3-7 п о в т о р ю ю т ь с я відповідну кількість разів. Такі операції н а з и в а ю т ь в е к т о р ­
ними.

Рис. 3.2. Діаграма циклу виконання команди

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


Для глибшого р о з у м і н н я п о с л і д о в н о с т і в и к о н а н н я к о м а н д и р о з г л я н е м о д е т а л ь н і ш е
структуру регістрової (надоперативної) п а м ' я т і п р о ц е с о р а . Ця п а м ' я т ь (рис. 3.3) склада­
ється з регістрів з з а к р і п л е н и м и о п е р а ц і я м и , та регістрів з а л ь н о г о п р и з н а ч е н н я . Тут РгА,
РгК і РгД - відповідно регістри адреси, к о м а н д і даних. РгА зберігає а д р е с у даного а б о
команди при з в е р н е н н і до о с н о в н о ї пам'яті. РгД зберігає о п е р а н д п р и й о г о з а п и с у а б о
зчитуванні з о с н о в н о ї пам'яті. В ролі о п е р а н д а м о ж е бути дане, к о м а н д а або адреса. РгК
зберігає к о м а н д у після її з ч и т у в а н н я з о с н о в н о ї пам'яті. ПЛ - п р о г р а м н и й л і ч и л ь н и к ,
я к и й підраховує к о м а н д и та зберігає а д р е с у п о т о ч н о ї к о м а н д и . К о м п ' ю т е р з архітекту­
рою Д ж о н а ф о н Н е й м а н а м а є один п р о г р а м н и й л і ч и л ь н и к .

РгА РгД

ПЛ РгО

Ргі

РгК Рг(п-І)

п регістрів
РгССП
загального
призначення

Рис. 3.3. Регістрова пам'ять процесора


86

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


п р о ц е с о р а , або, як їх іще н а з и в а ю т ь , п р а п о р ц і в . К о ж е н п р а п о р е ц ь має спеціальне п р и ­
з н а ч е н н я . Ч а с т и н а п р а п о р ц і в в к а з у є на результати а р и ф м е т и ч н и х і логічних операцій:
додатній результат (Р), в і д ' є м н и й результат (N), н у л ь о в и й результат (Z), перенос (С),
а р и ф м е т и ч н е п е р е п о в н е н н я (V), і т. д. В системі к о м а н д к о м п ' ю т е р а є к о м а н д и , які вказу­
ють п р о ц е с о р у коли в с т а н о в и т и чи с к и н у т и ці т р и г е р и . І н ш а ч а с т и н а п р а п о р ц і в вказує
р е ж и м и з а х и с т у пам'яті. Існують т а к о ж п р а п о р ц і , які в к а з у ю т ь пріоритети виконува­
н и х п р о г р а м . В д е я к и х п р о ц е с о р а х додаткові т р и г е р и с л у ж а т ь для зберігання кодів умов,
ф о р м у ю ч и регістр кодів у м о в . Взяті р а з о м описані п р а п о р ц і ф о р м у ю т ь слово стану п р о ­
г р а м и ( С С П ) , а відповідні т р и г е р и - регістр С С П .
Регістри з а г а л ь н о г о п р и з н а ч е н н я (РЗП) є п р о г р а м н о д о с т у п н и м и . Зазвичай 'їх на­
з и в а ю т ь р е г і с т р о в и м ф а й л о м . Вони м о ж у т ь в и к о р и с т о в у в а т и с ь програмістом в якості
регістрів для з б е р і г а н н я вхідних та в и х і д н и х даних, а т а к о ж п р о м і ж н и х результатів об­
числень, в я к о с т і а д р е с н и х та і н д е к с н и х регістрів п р и в и к о н а н н і операцій модифікації
адрес. Н а п р и к л а д , в п р о ц е с о р і U l t r a S P A R C II є дві групи р е г і с т р о в и х файлів: 32 64-роз-
р я д н і регістри з а г а л ь н о г о п р и з н а ч е н н я та 32 регістри для д а н и х з р у х о м о ю комою, які
м о ж у т ь зберігати а б о 3 2 - р о з р я д н і дані о д и н а р н о ї точності, або 6 4 - р о з р я д н і дані подвій­
ної точності. В п р о ц е с о р і Pentium II є л и ш е 8 3 2 - р о з р я д н и х та 6 16-розрядних регістрів
загального призначення.
З в ' я з к и м і ж вузлами п р о ц е с о р а і о с н о в н о ю п а м ' я т т ю п о к а з а н о на рис. 3.4. Як видно
з р и с у н к а , п р о ц е с о р в з а є м о д і є з о с н о в н о ю п а м ' я т т ю через регістри адрес та даних. Крім
того, п р и с т р і й к е р у в а н н я ф о р м у є сигнали з а д а н н я р е ж и м і в р о б о т и пам'яті.

Основна пам'ять Сигнали керування

А 1

Пристрій
РгА РгД
керування
і
ПЛ РгО

17 Рг 1

АЛП

РгК Рг (п-1)
п регістрів
регістрова загального
пам'ять призначення
ПРОЦЕСОР

Рис. 3.4. Зв'язки між процесором і основною пам'яттю


87

Виходячи з наведеної в и щ е і н ф о р м а ц і ї п р о вузли п р о ц е с о р а та його з в ' я з к и з о с н о ­


вною пам'яттю, р о з г л я н е м о д е т а л ь н і ш е в и к о н а н н я к о м а н д на п р и к л а д і в и к о н а н н я опе­
рації додавання слова, я к е з н а х о д и т ь с я в пам'яті за а д р е с о ю 9, з в м і с т о м регістра РгО
регістрової пам'яті процесора, коли результат операції з а с и л а є т ь с я в пам'ять за адресою 9.
Програма обчислень знаходиться т а к о ж в пам'яті. О п е р а ц і ю м о ж н а з а п и с а т и н а с т у п н и м
чином:
[Комірка 9] := [Комірка 9] + [РгО].
Послідовність дій п р и в и к о н а н н і цієї операції буде н а с т у п н о ю :
1. Рг А :- ПЛ. З н а ч е н н я із п р о г р а м н о г о л і ч и л ь н и к а , т о б т о адреса к о м а н д и , з а п и с у є т ь ­
ся в регістр адреси РгА.
2. З ч и т у в а н н я із комірки [РгА] о с н о в н о ї пам'яті к о м а н д и д о д а в а н н я двох чисел в
регістр даних РгД.
3. Рг К := Рг Д. П е р е з а п и с к о м а н д и д о д а в а н н я двох чисел з регістра д а н и х в регістр
команди РгК.
4. РгА := [А РгК]. З а п и с адреси числа із регістра к о м а н д и до регістра адреси (ця а д р е ­
са рівна 9).
5. З ч и т у в а н н я із комірки [РгА] о с н о в н о ї пам'яті д а н о г о і з а с и л а н н я його в регістр
РгД.
6. Рг Д := [РгД] + [РгО]. В и к о н а н н я в А Л П операції [РгД] + [РгО] і з а с и л а н н я р е з у л ь ­
тату в РгД.
7. Запис в комірку 9 основної п а м ' я т і даного із регістра РгД.
8. ПЛ := ПЛ +1. П р и р о щ е н н я на о д и н и ц ю в м і с т у п р о г р а м н о г о л і ч и л ь н и к а .
Подібним ч и н о м в и к о н у ю т ь с я інші к о м а н д и , в к л ю ч а ю ч и к о м а н д и взаємодії з п р и ­
строями в в е д е н н я - в и в е д е н н я .

3.2. Типи операцій та команд

3.2.1. Класифікація команд за типами операцій


Команди м о ж у т ь бути класифіковані відповідно до ініційованих н и м и типів операцій.
К о м а н д и о б р о б к и д а н и х ініціюють:
• а р и ф м е т и ч н і операції ( д о д а в а н н я , в і д н і м а н н я , м н о ж е н н я та ділення) над с к а л я р ­
ними, т о б т о о д и н о ч н и м и д а н и м и , та над в е к т о р а м и д а н и х (деякою кількістю даних);
• логічні операції (логічне м н о ж е н н я , д о д а в а н н я , інверсія, і т.д.) н а д о к р е м и м и
р о з р я д а м и даного, с к а л я р н и м и д а н и м и т а над в е к т о р а м и даних;
• операції зсуву ( в п р а в о , вліво) над с к а л я р н и м и та над в е к т о р н и м и д а н и м и ;
• операції п е р е т в о р е н н я д а н и х ( п е р е т в о р е н н я із ф о р м а т у з ф і к с о в а н о ю в ф о р м а т з
рухомою комою і н а в п а к и , і т. д.);
• операції над с и м в о л а м и та с т р і ч к а м и символів.
К о м а н д и п е р е м і щ е н н я даних, в к л ю ч а ю ч и к о м а н д и з в е р т а н н я д о п а м ' я т і , ініціюють:
• операції п е р е м і щ е н н я д а н и х в регістрах та стеках н а д с к а л я р а м и та в е к т о р а м и ;
• к о м а н д и вибірки даних з п а м ' я т і та з а п а м ' я т о в у в а н н я д а н и х в пам'яті;
" к о м а н д и вибірки адрес з пам'яті та з а п а м ' я т о в у в а н н я адрес в п а м ' я т і ;
• к о м а н д и вибірки к о м а н д з п а м ' я т і та з а п а м ' я т о в у в а н н я к о м а н д в пам'яті.
88

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


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

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

3.2.2. Команди обробки даних


Як в ж е було зазначено, к о м а н д и о б р о б к и д а н и х в п е р ш у чергу ініціюють в и к о н а н ­
н я а р и ф м е т и ч н и х о п е р а ц і й . Ц е операції д о д а в а н н я , в і д н і м а н н я , м н о ж е н н я т а ділення
над ч и с л а м и , п р е д с т а в л е н и м и в ф о р м а т а х з ф і к с о в а н о ю та р у х о м о ю комою. П р и ц ь о м у
а р и ф м е т и ч н і операції м о ж у т ь в и к о н у в а т и с ь як н а д с к а л я р н и м и д а н и м и , так і над векто­
р а м и даних.
Д о а р и ф м е т и ч н и х н а л е ж а т ь т а к о ж н а с т у п н і операції над о д и н о ч н и м и операндами:
в з я т т я а б с о л ю т н о ї в е л и ч и н и від о п е р а н д а (absolute); інверсія з н а к у операнда (negate);
п р и р о щ е н н я о п е р а н д а на о д и н и ц ю (increment); з м е н ш е н н я о п е р а н д а на о д и н и ц ю (decr­
ement).
К о м а н д и о б р о б к и д а н и х ініціюють т а к о ж в и к о н а н н я логічних операцій. До їх числа
в х о д я т ь операції логічного м н о ж е н н я , логічного д о д а в а н н я , д о д а в а н н я за модулем два,
інверсія, і т. д. Логічні операції в и к о н у ю т ь с я н а д о к р е м и м и р о з р я д а м и даних, над оди­
н о ч н и м и д а н и м и і над в е к т о р а м и даних.
До складу к о м а н д о б р о б к и д а н и х більшості к о м п ' ю т е р і в входить велика кількість
о п е р а ц і й зсуву над с к а л я р н и м и д а н и м и т а в е к т о р а м и даних, які будуть д е т а л ь н о р о з ­
глянуті в розділі 3.
О п е р а ц і ї п е р е т в о р е н н я д а н и х з м і н ю ю т ь ф о р м а т п р е д с т а в л е н н я даних. Ц е м о ж е бути
п е р е т в о р е н н я із ф о р м а т у з ф і к с о в а н о ю в ф о р м а т з р у х о м о ю к о м о ю і н а в п а к и , п е р е т в о ­
р е н н я із двійкової в д е с я т к о в у систему і т. д.
О п е р а ц і ї над с и м в о л а м и т а с т р і ч к а м и с и м в о л і в п е р е д б а ч а ю т ь о б р о б к у с и м в о л ь н и х
д а н и х і будуть р о з г л я н у т і далі.
В табл. 3.1 наведено перелік та ф у н к ц і ї а р и ф м е т и ч н и х та л о г і ч н и х к о м а н д комп'юте­
ра D L X , з а п р о п о н о в а н о г о Д. П а т т е р с о н о м та Д. Хеннессі в якості навчальної моделі су­
часного к о м п ' ю т е р а .

Таблиця 3.1
№ Код
Функції команд комп'ютера D L X
пп команди
Арифметичні Операції над цілими та логічними даними в регістрах цілих
та логічні чисел; знакова арифметика з фіксацією переповнення
A D D , ADDI, A D D U , Додати, додати безпосереднє дане (immediate), з знаком та без
1
ADDUI знаку
SUB, SUBI, SUBU,
2 Відняти, відняти безпосереднє дане, з знаком та без знаку
SUBUI
MULT, M U L T U , DIV,
3 Перемножити та поділити, з знаком та без знаку
DIVU
4 AND, ANDI Додати, додати безпосереднє дане
Логічне АБО, логічне АБО над безпосереднім даним, виключне
5 OR, ORI, XOR, XORI
АБО, виключне АБО над безпосереднім даним
Зчитування старших 16 розрядів безпосереднього даного та
6 LHI
16 нулів молодших розрядів
SLL, SRL, SRA, Зсуви направо та наліво логічні та арифметичні, включаючи
7
SLLI, SRLI, SRAI безпосереднє дане
SEQ, SXE, SLT, Встановити за умови, якщо рівне нулю, не рівне нулю, менше
8
SGT, SLE, SGE ніж, більше ніж, менше ніж або рівне, більше ніж або рівне
Рухома кома Операції з рухомою комою
9 ADDD, ADDF Додати з подвійною точністю та з рухомою комою
10 SUBD, SUBF Відняти з подвійною точністю та з рухомою комою
11 MULTD, M U L T F Помножити з подвійною точністю та з рухомою комою
12 DIVD, DIVF Поділити з подвійною точністю та з рухомою комою
CVTD2F, CVTD2I,
Перетворення з формату з подвійною точністю до формату з
13 CVTF2D, CVTF2I,
рухомою комою, до формату з одинарною точністю та навпаки
CVTI2D, CVTI2F
EQD, EQF, NED, NEF,
Порівняння даних в форматах з одинарною та подвійною
14 LTD, LTF, GTD, GTF,
точністю та записати результат до регістру станів
LED, LEF, GED, GEF

3.2.3. Команди переміщення даних


Команди п е р е м і щ е н н я д а н и х н а л е ж а т ь д о б а з о в и х к о м а н д к о м п ' ю т е р а . Вони здій­
снюють передачу д а н и х з одного місця в інше. Ці к о м а н д и в к а з у ю т ь :
* місце р о з м і щ е н н я о п е р а н д і в - о с н о в н а п а м ' я т ь чи регістр;
• адреси р о з м і щ е н н я о п е р а н д і в в о с н о в н і й п а м ' я т і а б о в р е г і с т р о в о м у файлі;
• методи адресації к о ж н о г о операнда;
• кількість даних, що підлягають п е р е м і щ е н н ю ;
• р о з р я д н і с т ь даних, які м а ю т ь б у т и передані.
В системах к о м а н д р і з н и х к о м п ' ю т е р і в це з р о б л е н о по різному. Н а п р и к л а д , в деяких
комп'ютерах місце р о з м і щ е н н я о п е р а н д і в в к а з у є т ь с я в полі коду операції, в і н ш и х - в
адресному полі. В табл. 3.2 як п р и к л а д наведені к о м а н д и п е р е м і щ е н н я д а н и х к о м п ' ю т е р а
I B M S/370.
Таблиця 3.2
Мнемонічний Розрядність
Ім'я операції Опис операції
код операції даних
L Load 32 Передача із пам'яті в регістр
LH Load Halfword 16 Передача із пам'яті в регістр
LR Load 32 Передача із регістра в регістр
LES Load (Short) 32 Передача із регістра з РК в регістр з РК
LTS Load (Short) 32 Передача із пам'яті в регістр з РК
LDR Load (Long) 64 Передача із регістра з РК в регістр з РК
LD Load (Long) 64 Передача із пам'яті в регістр з РК
ST Store 32 Передача із регістра в пам'ять
STH Store Halfword 16 Передача із регістра в пам'ять
SOC Store Character 8 Передача із регістра в пам'ять
STE Store (Short) 32 Передача із регістра з РК в пам'ять
STD Store (Long) 64 Передача із регістра з РК в пам'ять
90

Тут наведено два т и п и к о м а н д п е р е м і щ е н н я - з ч и т у в а н н я даних (Load) та з а п а м ' я т о ­


в у в а н н я д а н и х (Store). Вказується т а к о ж р о з м і р даних: character - 8-розрядні дані, half-
word - 16-розрядні дані, short - 3 2 - р о з р я д н і дані, long - 6 4 - р о з р я д н і дані. Для задання
н о м е р а регістра в р е г і с т р о в о м у ф а й л і п р о ц е с о р а та н о м е р а комірки основної пам'яті,
при н а п и с а н н і к о м а н д и ці н о м е р и (адреси) з а п и с у ю т ь с я с п р а в а від мнемонічного коду
операції, н а п р и к л а д L105.R4 означає передачу даного з к о м і р к и пам'яті 105 до регістра
R4. П о т р і б н о з а з н а ч и т и , що в комп'ютері I B M S/370 є, крім регістрового ф а й л у для ціло­
ч и с л о в и х даних, т а к о ж р е г і с т р о в и й ф а й л для д а н и х з р у х о м о ю комою. Для позначення
ц и х регістрів в табл. 3.2 в и к о р и с т а н а абревіатура РК, що означає "рухома кома".
Для п о р і в н я н н я в табл. 3.3 як п р и к л а д наведені к о м а н д и п е р е м і щ е н н я даних комп'ю­
тера з с п р о щ е н о ю с и с т е м о ю к о м а н д D L X . Видно, що т у т додались к о м а н д и обміну між
р е г і с т р а м и з ф і к с о в а н о ю та р у х о м о ю комою.
Таблиця 3.3
№ Код
Функції команди D L X машини
пп команди
Пересилання даних поміж регістрами та пам'яттю або поміж
спеціальними регістрами та регістрами чисел з фіксованою та
Пересилання даних
рухомою комою; тільки один метод адресації: 16-бітовий зсув +
вміст регістра чисел з фіксованою комою
1 LB, LBU, SB Вибірка байта, вибірка байта без знаку, запис байта
2 L H , L H U , SH Вибірка півслова, вибірка півслова без знаку, запис півслова
3 LW, SW Вибірка слова, запис слова
Вибірка даного з рухомою комою з одинарною точністю, вибірка
даного з рухомою комою з подвійною точністю, запис даного з
4 LF, LD, SF, SD
рухомою комою з одинарною точністю, запис даного з рухомою
комою з подвійною точністю
Перемістити з/до регістра з фіксованою комою до/з спеціального
5 MOVI2S, MOVS2I
регістра
Перемістити з регістра з рухомою комою чи з подвійною точністю до
MOVF, M O V D
іншого регістра чи пари регістрів
MOVFP2I, Перемістити з регістра з рухомою комою чи з фіксованою комою до
MOVI2FP іншого регістра з фіксованою комою чи з рухомою комою

3.2.4. Команди передачі керування

Як у ж е з а з н а ч а л о с я , к о ж н а к о м а н д а м а є дві ф а з и в и к о н а н н я . П е р ш а фаза - це вибір­


ка к о м а н д и . На цій фазі за вмістом ПЛ з пам'яті в РгК в и б и р а є т ь с я команда. На другій
фазі, я к а н а з и в а є т ь с я в и к о н а н н я м к о м а н д и , д е ш и ф р у є т ь с я код операції і виконується
к о м а н д а , т о б т о із о с н о в н о ї пахм'яті в и б и р а ю т ь с я о п е р а н д и , в и к о н у є т ь с я а р и ф м е т и ч н а чи
логічна о п е р а ц і я і з а п а м ' я т о в у ю т ь с я результати о б ч и с л е н ь . На другій фазі при послідов­
н о м у в и к о н а н н і к о м а н д вміст ПЛ з б і л ь ш у є т ь с я на о д и н и ц ю , та вказує адресу наступної
к о м а н д и . На рис. 3.5 п о к а з а н о в и к о н а н н я операції в і д н і м а н н я від вмісту комірки А осно­
вної п а м ' я т і вмісту к о м і р к и В з з а п а м ' я т о в у в а н н я м р е з у л ь т а т у в комірці С, тобто (С) :=
(А) - (В), з в и к о р и с т а н н я м д в о а д р е с н о г о ф о р м а т у , коли т р и к о м а н д и розміщені в послі­
д о в н и х комірках пам'яті, і їх адреси з р о с т а ю т ь в п о р я д к у в и к о н а н н я команд, п о ч и н а ю ч и
з деякої к о м і р к и о с н о в н о ї п а м ' я т і і.
91

Адреси Вміст комірки

Початок Трикомандний
МОУЄ Я З , А програмний сегмент
виконання

І+ 1 БСВ В, Я З

і+2 МОУЄ С , Р З

Дані
для
програми

Рис. 3.5. Програма виконання операції (С) := (А) - (В)

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


ди передачі к е р у в а н н я , коли ш л я х о м аналізу д е я к и х у м о в в и б и р а є т ь с я один з н а б о р у
можливих шляхів о б ч и с л е н ь . П р и в и к о н а н н і ц и х к о м а н д вміст п р о г р а м н о г о л і ч и л ь н и к а
змінюється на адресу деякої к о м і р к и пам'яті.
Існує декілька п р и ч и н необхідності в и к о н а н н я о п е р а ц і й передачі к е р у в а н н я . До н а й ­
важливіших з них н а л е ж а т ь н а с т у п н і :
• Значна ч а с т и н а о п е р а ц і й в к о м п ' ю т е р і в и к о н у є т ь с я б а г а т о р а з о в о . Для в и р і ш е н ­
ня деякої задачі м о ж е в и н и к н у т и п о т р е б а в в и к о н а н н і тисяч а б о й м і л ь й о н і в к о м а н д .
Писати та зберігати в п а м ' я т і ті ж к о м а н д и б а г а т о р а з о в о є нелогічним та й з б и т к о в и м .
Тому, коли о б р о б л я є т ь с я в е к т о р д а н и х чи список с и м в о л і в необхідно в и к о р и с т а т и п р о ­
грамний ц и к л , коли в и к о н у є т ь с я п о в т о р н о та ж сама послідовність к о м а н д для о б р о б к и
всіх операндів.
• П р а к т и ч н о всі п р о г р а м и потребують п р и й н я т т я деякого р і ш е н н я - комп'ютер п о ­
винен виконати одні дії при наявності одних у м о в , та інші дії при наявності інших умов.
• К о р е к т н е к о м п о н у в а н н я в е л и к и х і н а в і т ь середнього р о з м і р у п р о г р а м є достат­
ньо в а ж к о ю задачею. Н а я в н і с т ь м е х а н і з м у її п р е д с т а в л е н н я м а л и м и к у с к а м и є д у ж е к о ­
рисним.

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

3.2.4.1. Команди переходу


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

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


в и к о н у є т ь с я н а с т у п н а з а д а н о ю к о м а н д а , т о б т о , я к з а з в и ч а й , з н а ч е н н я п р о г р а м н о г о лі­
чильника збільшується на одиницю.
Є два ш л я х и в и р о б л е н н я у м о в и , я к а буде п е р е в і р я т и с ь к о м а н д о ю у м о в н о г о перехо­
ду. П е р ш и й ш л я х в и р о б л е н н я у м о в и передбачає ф о р м у в а н н я коду у м о в и , я к результату
в и к о н а н н я д е я к и х о п е р а ц і й . Ц е й код м о ж е бути п о м і щ е н и й в д о с т у п н и й користувачеві
регістр. Н а п р и к л а д , а р и ф м е т и ч н і операції д о д а в а н н я , в і д н і м а н н я і т. д. м о ж у т ь ф о р м у ­
вати д в о р о з р я д н и й код у м о в и , я к и й п р и й м а є одне з н а с т у п н и х ч о т и р ь о х значень: нуль,
додатне, від'ємне, п е р е п о в н е н н я . В т а к о м у к о м п ' ю т е р і буде ч о т и р и різних к о м а н д и умов­
ного переходу:
В1ДР X - перехід до к о м і р к и X, я к щ о результат додатній;
ВИХ X - перехід до к о м і р к и X, я к щ о результат в і д ' є м н и й ;
В±Ч2 X - перехід до к о м і р к и X, я к щ о результат р і в н и й нулю;
ВІЮ X - перехід до к о м і р к и X, я к щ о відбулось п е р е п о в н е н н я .
Д р у г и й ш л я х в и р о б л е н н я у м о в и м о ж е б у т и в и к о р и с т а н и м в т р и а д р е с н о м у форматі
к о м а н д и , коли п о р і в н я н н я і с п е ц и ф і к а ц і я переходу з а д а є т ь с я в самій команді. Н а п р и ­
клад к о м а н д а
ВИЕ РчЗ, Я4, X
з а д а є перехід до к о м і р к и X, я к щ о вміст регістра ЯЗ д о р і в н ю є вмісту регістра Я4.
На рис. 3.6 п о к а з а н о п р и к л а д п р о г р а м и , в якій в и к о р и с т а н о б е з у м о в н и й перехід та
умовні переходи з застосуванням обох описаних вище шляхів формування умови.
Адреса пам'яті Команда
200
201
202 Б и в X, У
203
Безумовний перехід
Умовний перехід

210 ВіХ 202


211

335 ВРчЕ Ю, Я2. 345

Умовний перехід

345

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

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


ш е н н я адреси. П р и к л а д п о к а з у є , я к у м о в н и й т а б е з у м о в н и й переходи м о ж у т ь бути ви­
к о р и с т а н і д л я с т в о р е н н я п о в т о р ю в а н и х ц и к л і в к о м а н д . К о м а н д и від комірки 202 до ко­
м і р к и 210 будуть в и к о н у в а т и с ь п о в т о р н о , аж п о к и результат в і д н і м а н н я У від X не стане
р і в н и м нулю.
93

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


хом послідовного в и к о н а н н я к о м а н д (рис. 3.7а), або з в и к о р и с т а н н я м к о м а н д переходів
(рис. 3.7Ь). Тут М] () = 1,2,...,п) - адреса в п а м ' я т і к о ж н о г о із п чисел, і (і=1,2,...,п) - адреси
розміщення команд, Б - адреса р о з м і щ е н н я результуючої с у м и .

і Move M.R1 Clear RO

і+ 1 Add N2.R1 i+l Move NO, Rl

і+2 Add N3.R1 i+2


Acid N r i + RO

i+3 Decrement Rl
• i+4 BRPi+2
+ (п-1) Add Nn.Rl i+5 Move RO, S

і+п Move Rl.S •

:
• S

S NO n
N1 M
N2 N2

. • •

Ні Nn

Рис. 3.7. Дві програми додавання п чисел шляхом послідовного виконання команд (а)
та з використанням переходів (Ь)

В и к о р и с т а н н я переходів в и м а г а є в в е д е н н я д о д а т к о в и х к о м а н д о ч и с т к и Clear RO,


задання кількості п повторів в и к о н а н н я тіла п р о г р а м и , з м е н ш е н н я вмісту регістра R1,
який використовується як л і ч и л ь н и к , а т а к о ж к о м а н д и аналізу у м о в и . Р а з о м з т и м , в и к о ­
р и с т а н н я переходів з м е н ш у є о б ' є м п р о г р а м , з о к р е м а в н а в е д е н о м у п р и к л а д і взамін п + 1
команд, де п - кількість чисел в масиві, в и к о р и с т а н о л и ш е 6 к о м а н д .

3.2.4.2. Команди пропуску

Команда п р о п у с к у в к л ю ч а є п е р е д б а ч у в а н у адресу. Т и п о в о п р о п у с к передбачає, щ о


одна команда буде п р о п у щ е н а . Ця к о м а н д а не в и м а г а є н а я в н о с т і а д р е с н о г о поля. Ти­
повим її п р и к л а д о м є команда increment-and-skip-if-zero (ISZ) - приріст на о д и н и ц ю та
перехід я к щ о нуль. Розглянемо н а с т у п н и й ф р а г м е н т п р о г р а м и (рис. 3.8).

Адреса пам'яті Команда

201

Безумовний перехід

209 1SZR1
210 BR201 Пропуск
211

Рис. 3.8. Приклад використання команди пропуску


94

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


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

3.2.4.3. Команди звернення до підпрограм

О д н и м з н а й б і л ь ш и х п о к р а щ а н ь в р о з р о б ц і мов п р о г р а м у в а н н я є підпрограми. Під­


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

Основна програма

500

600 Свії ЯиВ 2


601 Підпрограма БЬ'В 1

650
651

689

800
Підпрограма БИВ 2
850

Рис. 3.9. Вкладені підпрограми


І 95

На ц ь о м у прикладі о с н о в н а п р о г р а м а п о ч и н а є т ь с я з к о м і р к и за а д р е с о ю 010. Ця п р о ­
грама включає з в е р н е н н я до п і д п р о г р а м и S U B I , я к а п о ч и н а є т ь с я з к о м і р к и за адресою
500. Коли в и к о н у є т ь с я ця к о м а н д а в и к л и к у , п р о ц е с о р п р и з у п и н я є в и к о н а н н я о с н о в н о ї
програми і п о ч и н а є в и к о н а н н я п і д п р о г р а м и S U B I ш л я х о м в и б о р у н а с т у п н о ї к о м а н д и
з комірки 500. Всередині п і д п р о г р а м и S U B I є д в а з в е р н е н н я до п і д п р о г р а м и SUB2, я к а
починається з к о м і р к и за адресою 800. В о б о х ц и х в и п а д к а х п р и з у п и н я є т ь с я в и к о н а н н я
підпрограми S U B I і в и к о н у є т ь с я п і д п р о г р а м а SUB2. К о м а н д а Return в к а з у є п р о ц е с о р у
повернутись назад до п р о г р а м и S U B I та п р о д о в ж и т и в и к о н а н н я к о м а н д и , яка іде за від­
повідною к о м а н д о ю в и к л и к у Call. Ці з в е р н е н н я м і ж о с н о в н о ю п р о г р а м о ю та п і д п р о г р а ­
мами показані на рис. 3.10.

Основна пам'ять
010
100
101
Основна програма

500

600
601 Підпрограма SUB 1

650
651

689

800
Підпрограма SUB 2
850

Рис. 3.10. Виконання послідовності вкладених підпрограм з рис. 3.16.

В табл. 3.4 як п р и к л а д наведені к о м а н д и передачі к е р у в а н н я к о м п ' ю т е р а з с п р о щ е ­


ною системою к о м а н д Б Ь Х .
Таблиця 3.4
№ Код
Функції команди D L X машини
пп команди
Умовні та безумовні переходи; з використанням програмного
Керування
лічильника або регістра
Перехід вміст регістра рівний/не рівний нулю; 16-розрядне зміщення
1 BEQZ, BNEZ
до РС + 4
Тестове порівняння розряду в регістрі стану БР і перехід; 16-розрядне
2 BFPF, BFPT
зміщення до РС + 4
96

3 J,JR Jumps; 26-розрядне зміщення до PC + 4 (J) або цільового регістра (JR)


Jump and link; збереження PC+8 до R31, ціллю є 26-розрядне зміщення
4 JAL, JALR
до PC + 4 (JAL) чи регістр (JALR)

3.2.5. Команди введення-виведення

К о м а н д и в в е д е н н я - в и в е д е н н я з н а ч н о з м і н ю ю т ь с я від одного комп'ютера до іншо­


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

3.2.6. Принципи формування системи команд комп'ютера


П р и р о з р о б ц і к о м п ' ю т е р а необхідно в р а х о в у в а т и багато о с о б л и в о с т е й в и б о р у сис­
теми команд. З одного б о к у система к о м а н д п о в и н н а бути ф у н к ц і о н а л ь н о п о в н о ю , т о б ­
то к о м п ютер п о в и н е н з а б е з п е ч у в а т и в и к о н а н н я всіх з а д а н и х ф у н к ц і й . З іншого боку
система к о м а н д м а є б у т и о р т о г о н а л ь н о ю , т о б т о не п о в и н н а бути н а д л и ш к о в о ю . Для
н о в о г о комп ютера, я к и й є р о з ш и р е н н я м відповідної серії, першочерговою є сумісність
п р о г р а м и , які в и к о н у ю т ь с я на о д н о м у комп'ютері, п о в и н н і в и к о н у в а т и с ь і на і н ш о м у
к о м п ютері. Д л я з б і л ь ш е н н я терміну в и к о р и с т а н н я в а ж л и в и м є р о з ш и р е н н я адресного
діапазону та о д н о р і д н о с т і а д р е с н о г о простору. І, нарешті, в а ж л и в и м є р о з м і р та органі­
з а ц і я самого ф о р м а т у к о м а н д и . Р о з г л я н е м о ц і о с о б л и в о с т і д е т а л ь н і ш е
Є багато рівнів п о в н о т и с и с т е м и к о м а н д . На н а й н и ж ч о м у рівні всі комп'ютерні опе­
рації м о ж у т ь бути в и к о н а н і на базі операції інверсії логічного м н о ж е н н я ( N A N D ) . Від­
повідно к о м а н д а у м о в н о г о переходу, яка т а к о ж зберігає вміст п р о г р а м н о г о лічильника,
з а б е з п е ч у є в и к о н а н н я всіх п е р е с и л о к в комп'ютері. Тому м о ж н а створити п о в н у систему
к о м а н д на базі ц и х о п е р а ц і й . Т е о р е т и ч н о система к о м а н д к о м п ' ю т е р а може включати
л и ш е одну команду. Відомий к о м п ' ю т е р з н а з в о ю Single Instruction Computer (SIC), я к и й
є п р и к л а д о м к о м п ' ю т е р а з н и ж н ь о ю м е ж е ю кількості к о м а н д Єдиною к о м а н д о ю SIC є
к о м а н д а "відняти та п е р е й т и за у м о в и , що о т р и м а н о н е г а т и в н и й результат" (Subtract and
Branch if Negative). З р о з у м і л о , що коли " з а п р о г р а м у в а т и " цією командою усі інші коман­
д и деякої р е а л ь н о ї м а ш и н и , т о ш л я х о м п о в н о г о п е р е б и р а н н я м о ж н а довести п о в н о т у
системи команд, я к у с к л а д е н о л и ш е з однієї к о м а н д и sbn. Недоліки SIC є з р о з у м і л и м и ,
п р и н а й м н і , на п р и к л а д і п р о г р а м у в а н н я однією к о м а н д о ю операції м н о ж е н н я (ділення
т о щ о ) . Тобто п р о г р а м и на базі п р о с т и х о п е р а ц і й є д у ж е с к л а д н и м и .
Існує ф у н д а м е н т а л ь н и й з в ' я з о к між п р о с т о т о ю п р о ц е с о р а і складністю п р о г р а м и .
Оскільки, як було п о к а з а н о в и щ е , в и к о н у в а т и о б р о б к у д а н и х з з а с т о с у в а н н я м однієї ко­
м а н д и недоцільно, в р е а л ь н и х к о м п ' ю т е р а х з а с т о с о в у є т ь с я система команд, до складу
якої входить ш и р о к и й с п е к т р к о м а н д о б р о б к и даних, п е р е м і щ е н н я даних, передачі ке­
р у в а н н я та в в е д е н н я - в и в е д е н н я
В ранніх к о м п ' ю т е р а х р о з р о б н и к и с т а р а л и с я в к л ю ч и т и в систему команд м а к с и м а л ь ­
ну 'їх кількість з т и м , щ о б з а б е з п е ч и т и п р о г р а м і с т а м гнучкість та можливість в и б о р у
н а й д о ц і л ь н і ш о ї для к о н к р е т н о г о в и п а д к у к о м а н д и . Але з р о с т о м досвіду та з проведених
досліджень с т а л о з р о з у м і л и м , що далеко не всі м о ж л и в і команди доцільно включати в
систему к о м а н д к о м п ' ю т е р а . Адже, з одного боку, це у с к л а д н ю є ф о р м а т команди, а в
результаті і сам к о м п ' ю т е р , а з і н ш о г о боку, багато к о м а н д д у ж е рідко використовуються
97

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


кладу на рис. 3.11 п о д а н о середню ч а с т о т у в и к о р и с т а н н я к о м а н д передачі к е р у в а н н я в
різних задачах п р и о б р о б ц і д а н и х з ф і к с о в а н о ю ( т е м н і ш и й колір лінії) та з р у х о м о ю к о ­
мою (світліший колір лінії).

І ЩІ 8%
Виклик підпрограми 19%

10%
Безумовний перехід
І 6%

8".%
Умовний перехід
75%

0% 75% 100%

Рис. 3.11. Середня частота використання команд передачі керування

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

Не рівне

Рівне

Більше ніж або рівне

Більше ніж

Менше ніж або рівне

Менше ніж

Рис. 3.12. Середня частота використання різних типів команд умовного переходу

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


грамах не в и к о р и с т о в у ю т ь с я взагалі ( к о м а н д а „більше н і ж " д л я чисел з ф і к с о в а н о ю та
рухомою комою, к о м а н д а „більше н і ж а б о рівне" д л я чисел з р у х о м о ю к о м о ю ) , або в и -
І 98

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


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

3.2.7. Конвеєрне виконання команд


• К о н в е є р н е в и к о н а н н я к о м а н д подібне до р о б о т и к о н в е є р а складальної лінії на за­
воді, н а п р и к л а д а в т о м о б і л ь н о м у . На с к л а д а л ь н і й лінії в и р о б и п р о х о д я т ь через однако­
ві в и р о б н и ч і стадії. О д н о ч а с н о на лінії з н а х о д и т ь с я кількість в и р о б і в , рівна кількості
в и р о б н и ч и х стадій. П р о х о д я ч и ч е р е з всі в и р о б н и ч і стадії, в и р і б п р и й м а є кінцеві пара­
м е т р и . Ч а с в и г о т о в л е н н я о д н о г о в и р о б у є р і в н и м часу його п р о х о д ж е н н я через всі ви­
р о б н и ч і стадії, але п р и в и г о т о в л е н н і багатьох в и р о б і в , с к а ж е м о п, час, я к и й припадає на
в и г о т о в л е н н я всіх в и р о б і в , є р і в н и м :
Т = ітп + г(п - 1) = г ( т + п - 1),
де т - кількість в и р о б н и ч и х стадій, І - час в и к о н а н н я однієї в и р о б н и ч о ї стадії, а час,
я к и й п р и п а д а є на в и г о т о в л е н н я о д н о г о виробу, є р і в н и м :
Т в = : ( т + п - 1)/п.
П р и п >> т час Тв, я к и й п р и п а д а є на в и г о т о в л е н н я одного виробу, наближається до
часу 1 в и к о н а н н я однієї в и р о б н и ч о ї стадії.
П о д і б н о до в и г о т о в л е н н я виробу, к о м а н д а т а к о ж м а є кілька послідовних стадій ви­
к о н а н н я , як це п о к а з а н о на рис. 3.2. Тому л о г і ч н и м в и г л я д а є в и к о р и с т а н н я і тут прин­
ципу конвеєра.
Для п о ч а т к у р о з г л я н е м о поділ п р о ц е с у в и к о н а н н я к о м а н д и на дві стадії: вибірку та
в и к о н а н н я . В процесі стадії в и к о н а н н я к о м а н д и є п р о м і ж к и часу, коли немає звернень
д о пам'яті. Ц е й час м о ж е бути в и к о р и с т а н и м для в и б і р к и н а с т у п н о ї к о м а н д и паралельно
з в и к о н а н н я м п о т о ч н о ї к о м а н д и . На рис. 3.13 п о к а з а н о цей підхід.

Команда Результат
Адреса
команди
V
Вибірка
з
V
Буфер
V
і Виконання

Рис. 3.13. Двоярусний конвеєр виконання команди


99

Конвеєр має два н е з а л е ж н и х я р у с и . П е р ш и й я р у с в и к о н у є о п е р а ц і ю в и б і р к и т а буфе-


ризації ( к о р о т к о т е р м і н о в о г о з а п а м ' я т о в у в а н н я ) к о м а н д и . Коли д р у г и й я р у с з в і л ь н я є т ь ­
ся від р о б о т и , п е р ш и й я р у с передає й о м у б у ф е р и з о в а н у команду. Коли в д р у г о м у ярусі
виконується команда, в п е р ш о м у ярусі в и б и р а є т ь с я н а с т у п н а к о м а н д а . Така о п е р а ц і я
називається п о п е р е д н ь о ю в и б і р к о ю к о м а н д и (instruction prefetch) а б о с у м і щ е н н я м в и ­
бірки (fetch overlap).
Зрозуміло, щ о о п и с а н и й п р о ц е с п р и с к о р ю є в и к о н а н н я к о м а н д и . Я к б и операції в и ­
бірки та в и к о н а н н я м а л и о д н а к о в и й час в и к о н а н н я , то ц и к л в и к о н а н н я к о м а н д и міг би
бути з м е н ш е н и м вдвоє. О д н а к це не з о в с і м так ч е р е з н а с т у п н і п р и ч и н и :
1. Стадія в и к о н а н н я з н а ч н о д о в ш а стадії в и б і р к и , оскільки в о н а в и м а г а є в и к о н а н н я
операцій з ч и т у в а н н я та з а п и с у о п е р а н д і в та самої операції. Тому п е р ш и й я р у с п о в и н е н
чекати д е я к и й час, п о к и з в і л ь н и т ь с я його б у ф е р .
2. П р и появі к о м а н д и у м о в н о г о переходу адреса н а с т у п н о ї к о м а н д и до з а в е р ш е н н я
поточної к о м а н д и невідома. Тому п е р ш и й я р у с з м у ш е н и й чекати д о з а в е р ш е н н я р о б о т и
другого ярусу. Після ц ь о г о в ж е д р у г и й я р у с п о в и н е н чекати на з а в е р ш е н н я р о б о т и п е р ­
шим ярусом.
Час, я к и й в т р а ч а є т ь с я через другу п р и ч и н у , м о ж е б у т и з м е н ш е н и й ш л я х о м в и к о р и с ­
тання механізму п е р е д б а ч е н н я . Тут м о ж е б у т и в и к о р и с т а н е н а с т у п н е п р а в и л о : коли ко­
манда у м о в н о г о переходу п о с т у п а є з я р у с у в и б і р к и на я р у с в и к о н а н н я , в ярусі вибірки
проводиться вибірка із п а м ' я т і н а с т у п н о ї к о м а н д и після к о м а н д и у м о в н о г о переходу.
Тоді в в и п а д к у відсутності у м о в н о г о п е р е х о д у в т р а т часу не буде. Коли ж буде у м о в н и й
перехід, то в и б р а н а к о м а н д а п о в и н н а б у т и з н е х т у в а н а і в и б р а н а нова команда.
Хоча р о з г л я н у т і дві п р и ч и н и з н и ж у ю т ь п о т е н ц і й н у е ф е к т и в н і с т ь д в о я р у с н о г о кон­
веєра, в ц і л о м у в и г р а ш н е з а п е р е ч н и й . Д л я п о д а л ь ш о г о п і д в и щ е н н я п р о д у к т и в н о с т і п о ­
трібно з б і л ь ш у в а т и кількість ярусів к о н в е є р а . Р о з г л я н е м о поділ в и к о н а н н я к о м а н д и на
наступні стадії:
• Вибірка к о м а н д и (ВК): з ч и т у в а н н я в б у ф е р о ч і к у в а н о ї н а с т у п н о ю к о м а н д и .
• Д е ш и ф р у в а н н я к о м а н д и (ДК): в и з н а ч е н н я т и п у в и б р а н о ї к о м а н д и та специфіка­
торів операндів.
• Визначення адрес д а н и х (ВА): о б ч и с л е н н я а д р е с даних, н е о б х і д н и х д л я в и к о н а н ­
ня к о м а н д и з в р а х у в а н н я м м о ж л и в о с т і в и к о р и с т а н н я р і з н и х способів адресації.
• Вибірка о п е р а н д і в (ВО): з ч и т у в а н н я д а н и х із п а м ' я т і в регістри п р о ц е с о р а .
• В и к о н а н н я к о м а н д и (КВ): в и к о н а н н я в к а з а н о ї операції та, п р и н а я в н о с т і , з а п а м ' я ­
т о в у в а н н я результату в в и з н а ч е н о м у регістрі.
• З а п и с результату (ЗР): з а п а м ' я т о в у в а н н я р е з у л ь т а т у в пам'яті.
П р и т а к о м у поділі час т р и в а л о с т і р і з н и х стадій в и к о н а н н я к о м а н д и буде п р и б л и з н о
рівним. Тоді, як в и д н о з табл. 3.5, ш е с т и я р у с н и й к о н в е є р м о ж е з м е н ш и т и час в и к о н а н н я
9 команд з 54 тактів до 14 тактів.
Таблиця 3.5
Номер
1 2 3 4 5 6 7 8 9 10 11 12 13 14
такту
Команда 1 ВК ДК ВА ВО КВ ЗР
Команда 2 ВК дк ВА ВО КВ ЗР
Команда 3 ВК дк ВА ВО КВ ЗР
700

Команда 4 ВК дк ВА во кв ЗР
Команда 5 ВК ДК ВА во кв ЗР
Команда 6 ВК ДК ВА во кв ЗР
Команда 7 ВК ДК ВА во кв ЗР
Команда 8 ВК ДК ВА во КВ ЗР
Команда 9 ВК ДК ВА ВО кв ЗР
Ч а с о в а діаграма в табл. 3.5 показує, що к о ж н а к о м а н д а в и к о н у є т ь с я ш л я х о м прохо­
д ж е н н я через 6 я р у с і в к о н в е є р а . Р а з о м з т и м , не д л я к о ж н о ї к о м а н д и це п о т р і б н о Н а п р и ­
клад, к о м а н д а в и б і р к и н е в и м а г а є в и к о н а н н я операції З О . О д н а к п р и ї ї в и к о н а н н і м о ж н а
зробити шостий ярус конвеєра прозорим
Також на діаграмі п о к а з а н о , що всі стадії в и к о н у ю т ь с я п а р а л е л ь н о . В п е р ш у чергу
т у т п р и й н я т о , щ о н е в и н и к а є к о н ф л і к т і в п р и з в е р н е н н і д о пам'яті. Н а п р и к л а д , операції
ВК, ВО та ЗО п е р е д б а ч а ю т ь з в е р н е н н я до пам'яті. Діаграма допускає, що всі ці з в е р н е н н я
м о ж у т ь з д і й с н ю в а т и с ь о д н о ч а с н о . Більшість систем п а м ' я т і ц ь о г о не допускають, тому
з в е р н е н н я р о з н о с я т ь с я в часі. Іноді п о т р і б н е ч и с л о м о ж е з н а х о д и т и с ь в кеш пам'яті, а
стадії ВО та ЗО відсутні. Тому к о н ф л і к т и п р и з в е р н е н н і до п а м ' я т і не з а в ж д и сповільню­
ють к о н в е є р
Декілька і н ш и х ф а к т о р і в о б м е ж у ю т ь ріст п р о д у к т и в н о с т і з а рахунок в и к о р и с т а н н я
конвеєра
• н е о д н а к о в і с т ь часу ш е с т и стадій в и к о н а н н я к о м а н д и п р и в о д и т ь до п р о с т о ю дея­
к и х з них, як це м а л о місце в д в о я р у с н о м у конвеєрі;
• поява команди у м о в н о г о переходу може звести нанівець декілька вибірок команд
• подібною до к о м а н д и у м о в н о г о переходу є к о м а н д а п е р е р и в а н н я
Табл. 3.6 в і д о б р а ж а є в п л и в у м о в н о г о переходу п р и в и к о н а н н і тих же операцій, що й
в табл. 3.5.
Таблиця 3.6
Номер
1 2 3 4 5 6 7 8 9 10 11 12 13 14
такту
Команда 1 ВК ДК ВА ВО КВ ЗР
Команда 2 ВК ДК ВА во КВ ЗР
Команда 3 ВК ДК ВА во кв ЗР
Команда 4 ВК дк ВА во
Команда 5 ВК ДК ВА
Команда 6 ВК ДК
Команда 7 ВК
Команда 15 ВК ДК ВА во КВ ЗР
Команда 16 ВК ДК ВА ВО КВ ЗР

Тут п р и й н я т о , що к о м а н д а 3 є у м о в н и м п е р е х о д о м до к о м а н д и 15. Поки команда З


в и к о н у є т ь с я , н е м о ж л и в о в з н а т и , я к а к о м а н д а буде н а с т у п н о ю . К о н в е є р буде в и б и р а т и
н а с т у п н і к о м а н д и (4,5,6,7) і в и к о н у в а т и 'їх. Н а я в н і с т ь у м о в н о г о переходу в и з н а ч и т ь с я в
кінці с ь о м о г о такту. Після ц ь о г о к о н в е є р п о в и н е н з в і л ь н и т и с ь від непотрібних команд
( о ч и с т и т и с ь ) . На 8 такті к о м а н д а 15 п о с т у п и т ь в к о н в е є р і д а л ь ш е він почне заповнюва­
тись знову. П р и ц ь о м у від 9 до 12 тактів не буде з а в е р ш е н о в и к о н а н н я жодної команди.
Це є р о з п л а т а е ф е к т и в н і с т ю за п р и ч и н и н е м о ж л и в о с т і передбачити перехід.
707

На рис. 3.14 п о к а з а н о блок-схему в и к о н а н н я к о м а н д и в ш е с т и я р у с н о м у конвеєрі з


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

Вибірка команди

Декодування
команди

ГШ
Визначення адрес
операндів

Так

Вибірка операндів

Виконання
встановлення ПЛ £ команди

НІ
Очистити конвеєр
Запам'ятовував ня
результатів

Рис. 3.14. Шестиярусний конвеєр команд

В ш е с т и я р у с н о м у к о н в е є р і к о м а н д п о я в л я є т ь с я й інша п р о б л е м а , якої не було в д в о ­


ярусному конвеєрі. Стадія ВА м о ж е з а л е ж а т и від в м і с т у регістра, я к и й з м і н ю є т ь с я п о ­
передньою к о м а н д о ю , що з н а х о д и т ь с я в к о н в е є р і . З ' я в л я є т ь с я н о в и й конфлікт, для усу­
нення я к о г о необхідна відповідна логіка.
Таким ч и н о м , конфлікти к о н в е є р а м о ж у т ь б у т и т р ь о х т и п і в :
• К о н ф л і к т ресурсів, н а п р и к л а д , о д н о ч а с н а п о т р е б а д о с т у п у до пам'яті. Ц е й к о н ­
флікт в и р і ш у є т ь с я ш л я х о м р о з д і л е н н я д о с т у п у до р е с у р с у в часі, а б о ш л я х о м в в е д е н н я
додаткового ресурсу, н а п р и к л а д , кількох блоків п а м ' я т і .
• З а л е ж н і с т ь м і ж д а н и м и , коли результат в и к о н а н н я деякої к о м а н д и , яка іще не
завершена, є о п е р а н д о м д л я н а с т у п н о ї к о м а н д и . Д л я п о д о л а н н я д а н о г о к о н ф л і к т у існує
декілька шляхів. Це м о ж е бути в в е д е н н я „пустої" операції п о р (яка не в и к о н у є дій, але
дозволяє ліквідувати к о н ф л і к т ) , в в е д е н н я з в ' я з к і в м і ж я р у с а м и к о н в е є р а , щ о п р и с к о р ю є
доступ до потрібного операнда, а т а к о ж з а с т о с у в а н н я к о м п і л я т о р а , з д а т н о г о передбача­
ти такого т и п у к о н ф л і к т и та п е р е в п о р я д к о в у в а т и к о м а н д и п р о г р а м и .
• Н а я в н і с т ь у м о в н и х переходів. В с у ч а с н и х к о м п ' ю т е р а х д л я з м е н ш е н н я в п л и в у
на е ф е к т и в н і с т ь к о н в е є р а ц ь о г о к о н ф л і к т у в и к о р и с т о в у є т ь с я с п е ц і а л ь н а логіка передба­
чення переходу, яка дозволяє з н а й т и вітку, якою п р о г р а м а піде після переходу. І н ш и й під­
хід - в и к о н а н н я обох віток переходу до того часу, п о к и н а п р я м переходу стане відомим.
702

В н а с т у п н и х розділах п и т а н н я п і д в и щ е н н я е ф е к т и в н о с т і в и к о р и с т а н н я конвеєрної
о б р о б к и буде р о з г л я н у т о д е т а л ь н і ш е .

3.3. Формати команд комп'ютера

3.3.1. Класифікація архітектури комп'ютера за типом адресованої пам'яті


Як в и д н о з рис. 3.1, крім коду операції до складу к о м а н д и входить адресна частина.
Цією ч а с т и н о ю в и з н а ч а є т ь с я місце з н а х о д ж е н н я даних, над я к и м и виконується опера­
ція, з а д а н а кодом операції. Д а н и х м о ж е бути декілька, і, крім того, в о н и м о ж у т ь знахо­
д и т и с ь в о с н о в н і й пам'яті, в регістрах п р о ц е с о р а чи в з а п а м ' я т о в у ю ч и х елементах інших
вузлів к о м п ' ю т е р а . Тому і ф о р м а т и к о м а н д в ц и х в и п а д к а х будуть р і з н и м и . М о ж н а здій­
с н и т и к л а с и ф і к а ц і ю а р х і т е к т у р и к о м п ' ю т е р а за т и п о м а д р е с о в а н о ї пам'яті. З а л е ж н о від
того, я к и й т и п п а м ' я т і а д р е с у є т ь с я , р о з р і з н я ю т ь н а с т у п н і т и п и архітектур комп'ютера:
стекова, а к у м у л я т о р н а , на основі регістрів з а г а л ь н о г о п р и з н а ч е н н я .
В стековій архітектурі (рис. 3.15) о п е р а н д з а в ж д и з н а х о д и т ь с я в в е р ш и н і стека - спе­
ц і а л ь н о м у регістрі пам'яті, з я к о г о з а г р у ж а є т ь с я в регістр п р о ц е с о р а , або через нього
4

результат операції з а г р у ж а є т ь с я в п а м ' я т ь . Стек п р е д с т а в л я є с о б о ю п а м ' я т ь з детермі­


н о в а н о ю в и б і р к о ю , яка п р а ц ю є за п р и н ц и п о м „ о с т а н н і й п р и й ш о в - п е р ш и й в и й ш о в "
(LIFO - Last In First Out). Стек в и к о н у є дві операції: push - в ш т о в х у в а н н я даних в стек,
pop - в и ш т о в х у в а н н я д а н и х з стеку.

Процесор
Рг
Рг

Вершина
стека
т
Комірка пам яті

Пам'ять

Рис. 3.15. Стекова архітектура

І н ф о р м а ц і я м о ж е б у т и з а н е с е н о ю в в е р ш и н у стека з п а м ' я т і а б о з регістра А Л П п р о ­


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

Стекова архітектура була р е а л і з о в а н а в н а с т у п н и х к о м п ' ю т е р а х : В5500, В6500 ф і р м и


Burroughs, НР2116Р, Н Р З 000/70 ф і р м и Hewlett-Packard, J E M 1, J E M 2 ф і р м и ajile Systems.
В а к у м у л я т о р н і й архітектурі (рис. 3.16) о п е р а н д з а в ж д и з н а х о д и т ь с я в а к у м у л я т о р і
- спеціальному регістрі п р о ц е с о р а . В цей же регістр з а п и с у є т ь с я і результат операції.
Оскільки адреса одного із о п е р а н д і в в и з н а ч е н а , в к о м а н д і д о с т а т н ь о в к а з а т и л и ш е адре­
су другого операнда. Перевага даної а р х і т е к т у р и - к о р о т к і к о м а н д и . Вона була р е а л і з о ­
вана в к о м п ' ю т е р а х I B M 7090, D E C PDP-8 та і н ш и х .

Процесор
г* Акумулятор

АЛП

Шина пам'яті

Комірка пам'яті

Пам'ять

Рис. 3.16. Акумуляторна архітектура

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


ності як: архітектура т и п у п а м ' я т ь - п а м ' я т ь , р е г і с т р - п а м ' я т ь та регістр-регістр.
В архітектурі т и п у п а м ' я т ь - п а м ' я т ь (рис. 3.17) о п е р а н д и п о с т у п а ю т ь на вхідні р е ­
гістри А Л П п р о ц е с о р а п р я м о з пам'яті. Результат операції т а к о ж з а п и с у є т ь с я п р я м о в
пам'ять. О с к і л ь к и час з в е р н е н н я до п а м ' я т і є б і л ь ш и м часу з в е р н е н н я до регістрів, ця а р ­
хітектура х а р а к т е р и з у є т ь с я н и з ь к о ю ш в и д к о д і є ю . П р и к л а д о м т а к и х к о м п ' ю т е р і в є сім'ї
I B M System/370 т а D E C V A X .

Шина пам'яті

Комірка пам яті

Пам'ять

Рис. 3.17. Архітектура типу пам'ять-пам'ять


104

А р х і т е к т у р а т и п у р е г і с т р - п а м ' я т ь (рис. 3.18) передбачає в и б і р к у та подачу в А Л П


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

Шина пам'яті

Комірка пам'яті

Пам'ять

Рис. 3.18. Архітектура типу регістр-пам'ять

В архітектурі т и п у р е г і с т р - р е г і с т р (рис. 3.19) дані в А Л П п о с т у п а ю т ь л и ш е з регі­


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

Рг
Рг Проце­
Рг сор

АЛП

Комірка пам'яті

Пам'ять

Рис. 3.19. Архітектура типу регістр-регістр

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

ш и н а х навіть в якості п р о г р а м н о г о л і ч и л ь н и к а . Більшість с у ч а с н и х к о м п ' ю т е р і в побу­


довані на основі описаної а р х і т е к т у р и . Це, з о к р е м а , к о м п ' ю т е р и - P e n t i u m , S P A R C , Power
P C , A R M т а інші.
Р а з о м з т и м , за р е г і с т р а м и м о ж у т ь б у т и з а к р і п л е н і к о н к р е т н і ф у н к ц і ї - о д и н набір
с л у ж и т ь в якості індексних регістрів, і н ш и й п р и з н а ч е н и й для з б е р і г а н н я а р и ф м е т и ч н и х
операндів і т. д. Таким ч и н о м о р г а н і з о в а н і регістри в к о м п ' ю т е р а х сім'ї C D C 6000/7000.

3.3.2. Порівняльний аналіз форматів команд


Таким ч и н о м , як в и д н о з п о п е р е д н ь о г о п у н к т у та п р и к л а д і в із табл. 3.7, п р и р о б о т і з
о с н о в н о ю п а м ' я т т ю в к о м п ' ю т е р а х в и к о р и с т о в у ю т ь с я нуль-, о д н о - , д в о - , т р и - і ч о т и р и ­
адресні к о м а н д и (рис. 3.20).
коп А1 А2 A3 А4

коп А1 А2 A3

коп А1 А2

коп А1

КОП

Рис. 3.20. Формати команд комп'ютерів

Розглянемо р о б о т у к о м п ' ю т е р а з р і з н и м и ф о р м а т а м и к о м а н д на п р и к л а д і к о м а н д и
додавання д в о х чисел, я к а н а й ш и р ш е в и к о р и с т о в у є т ь с я . Н е х а й п о т р і б н о додати в А Л П
число, я к е з н а х о д и т ь с я в п а м ' я т і за а д р е с о ю А, до числа, я к е з н а х о д и т ь с я в п а м ' я т і за
адресою В, і результат р о з м і с т и т и за а д р е с о ю С:
С := [А] + [В].
В табл. 3.7 п о к а з а н а послідовність к о м а н д , я к і п о т р і б н о в и к о н а т и п р и в и к о р и с т а н н і
трьох типів о п и с а н и х архітектур для в и к о н а н н я операції д о д а в а н н я д в о х чисел.
Таблиця 3.7
Тип архітектури
На основі регістрів загального призначення
Стекова Акумуляторна
Регістр-пам'ять Регістр-регістр Пам'ять-пам'ять
Push А Load А Load R1,A Load R1,A Add A,B,C
Push В Add В Add R1,B Load R2,B
Add Store С Store C,R1 Add R3.R1.R2
Pop С Store C.R3

Тут А, В і C - адреси к о м і р о к п а м ' я т і , в я к и х з н а х о д я т ь с я ч и с л а А, В, С; R l , R2 і R3


- адреси регістрів п р о ц е с о р а .
При використанні триадресної команди та архітектури типу "пам'ять-пам'ять" вона
с и м в о л і ч н о м о ж е бути з а п и с а н а н а с т у п н и м ч и н о м :
A D D А,В,С.
106

Я к щ о в и к о р и с т о в у є т ь с я д в о а д р е с н а к о м а н д а т а архітектура т и п у "пам'ять-пам'ять",
то для в и к о н а н н я п о с т а в л е н о ї задачі необхідно в и к о н а т и дві к о м а н д и :

A D D А,В, я к а о з н а ч а є [А] := [А] + [В],


M O V E А,С, я к а означає [С] := [А],

або дві к о м а н д и :

M O V E В,С, я к а означає [С]:= [В],


A D D А,С, я к а о з н а ч а є [С] := [А] + [В].

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


з операндів.
О д н о а д р е с н а к о м а н д а м о ж е бути р е а л і з о в а н а з в и к о р и с т а н н я м а к у м у л я т о р н о ї архі­
т е к т у р и . В ц ь о м у в и п а д к у о п е р а ц і я С := [А] + [В] м о ж е бути в и к о н а н а послідовністю із
трьох команд:

L O A D А, я к а означає А К К := [А],
A D D В, я к а о з н а ч а є А К К := [АКК] + [В],
S T O R E С, я к а о з н а ч а є С := [ А К К ] .

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


ц и х регістрів м о ж е бути в и к о р и с т а н и й як а к у м у л я т о р . Я к щ о т а к и х регістрів г (зазвичай
г рівне 8, 16, 32, 64), в полі к о м а н д и необхідно д о б а в и т и log r бітів ( 3 - 6 бітів) для адреса­
2

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


к о м і р о к пам'яті. Я к щ о Ri - і-й регістр р е г і с т р о в о г о ф а й л у п р о ц е с о р а , то команди з аку­
мулятором можна замінити наступними:

L O A D A , R i , я к а означає Ргі := [А],


A D D B , R i , я к а о з н а ч а є Ргі := [Ргі] + [В],
S T O R E R i , A , я к а о з н а ч а є [А] := [Ргі].

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


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

A D D Ri,Rj, яка означає Rj := Ri + Rj

В ц ь о м у в и п а д к у к о м а н д а є н а й к о р о т ш о ю в п о р і в н я н н і з і н ш и м и , та в и к о н у є т ь с я в
процесорі найшвидше.
Головні критерії в и б о р у ф о р м а т у к о м а н д :
• ч и м к о р о т ш а к о м а н д а , т и м м е н ш а є м н і с т ь п а м ' я т і п о т р і б н а для її зберігання і т и м
менша розрядність шини команд;
107

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


тобто тим більша ш в и д к о д і я к о м п ' ю т е р а .
З а з в и ч а й ш у к а є т ь с я к о м п р о м і с н е ( о п т и м а л ь н е ) р і ш е н н я , і в р а х о в у є т ь с я , що р о з м і р
команди п о в и н е н б у т и у з г о д ж е н и м з р о з м і р о м даних, о с к і л ь к и в о н и зберігаються в од­
ній пам'яті.
В п е р ш и х к о м п ' ю т е р а х в и к о р и с т о в у в а л а с ь архітектура на основі регістрів з а г а л ь н о ­
го п р и з н а ч е н н я т и п у "пам'ять-пам'ять". Але о с к і л ь к и з р о з в и т к о м елементної бази у т в о ­
рився великий р о з р и в між ш в и д к о д і є ю о с н о в н о ї пам'яті т а п р о ц е с о р а , ц я архітектура
стала н е е ф е к т и в н о ю .
Після 1985 р о к у більшість к о м п ' ю т е р і в будуються на основі а р х і т е к т у р и т и п у ре-
гістр-пам'ять або регістр-регістр. Ц ь о м у є дві п р и ч и н и :
• перша - регістри п р о ц е с о р а ш в и д ш і пам'яті;
• друга - регістри п р о с т і ш е і е ф е к т и в н і ш е в и к о р и с т о в у ю т ь с я к о м п ' ю т е р о м .
В ц ь о м у в и п а д к у н а й в а ж л и в і ш и м є те, що регістри м о ж у т ь бути в и к о р и с т а н і д л я
зберігання змінних. Тоді з м е н ш у є т ь с я о б ' є м о б м і н у з п а м ' я т т ю і п р и с к о р ю є т ь с я в и к о ­
н а н н я п р о г р а м и , оскільки регістри ш в и д ш і пам'яті. Крім того, з м е н ш у є т ь с я ф о р м а т к о ­
м а н д и , оскільки адреса регістра к о р о т ш а а д р е с и пам'яті, т о м у щ о є м н і с т ь р е г і с т р о в о г о
ф а й л у м е н ш а є м н о с т і О П . Р о з р о б н и к у к о м п і л я т о р а п р о с т і ш е п р а ц ю в а т и коли всі регі­
стри регістрового ф а й л у еквівалентні і з а г а л ь н о д о с т у п н і . В к о м п ' ю т е р а х п е р ш и х п о к о ­
лінь регістри з а к р і п л ю в а л и с я для к о н к р е т н и х цілей і т и м с а м и м ч и с л о регістрів з н а ч н о
зменшувалось.
Яка кількість регістрів з а г а л ь н о г о п р и з н а ч е н н я є е ф е к т и в н о ю ? Відповідь з а л е ж и т ь
від того, я к в о н и в и к о р и с т о в у ю т ь с я к о м п і л я т о р о м . Більшість к о м п і л я т о р і в в и к о р и с т о ­
вують по декілька регістрів для р о б о т и з ф о р м у л а м и , з б е р і г а н н я п а р а м е т р і в та з м і н н и х .
П р и к л а д и комп'ютерів, в я к и х в и к о р и с т о в у ю т ь с я описані а р х і т е к т у р и :
• регістр-регістр: S P A R C , M I P S , Precision Architecture, Power P C , A l p h a , Pentium IV,
Athlon;
• р е г і с т р - п а м ' я т ь : Intel 80x86, Motorola 68000;
• пам'ять-пам'ять: V A X .

3.4. Способи адресації операндів


Як вже вказувалось, команда може включати від одного до ч о т и р ь о х полів, які вказують
адреси операндів. Варіанти інтерпретації бітів (розрядів) поля адреси з метою знаходжен­
ня операнда називаються способами адресації. Коли команда вказує на операнд, він може
знаходитись в самій команді, в основній або зовнішній пам'яті чи в регістровій пам'яті
процесора. За роки існування комп'ютерів була створена своєрідна технологія адресації,
яка передбачає реалізацію різних способів адресації, чому п о с л у ж и л о р я д п р и ч и н :
• з а б е з п е ч е н н я е ф е к т и в н о г о в и к о р и с т а н н я р о з р я д н о ї сітки к о м а н д и ;
• з а б е з п е ч е н н я е ф е к т и в н о ї апаратної п і д т р и м к и р о б о т и з м а с и в а м и даних;
• забезпечення задання параметрів операндів;
• м о ж л и в і с т ь генерації в е л и к и х адрес на основі малих.
Існує велика кількість способів адресації. Р о з г л я н е м о основні та н а й в ж и в а н і ш і с п о с о ­
би адресації: б е з п о с е р е д н ю , пряму, непряму, відносну, базову, індексну, а в т о і н к р е м е н т н у
708

та автодекрементну, сторінкову, стекову. П р а к т и ч н о у всіх існуючих к о м п ' ю т е р а х в и ­


к о р и с т о в у є т ь с я о д и н або декілька з ц и х способів адресації. Тому в к о м а н д у потрібно
в в о д и т и спеціальні о з н а к и з т и м , щ о б п р и с т р і й к е р у в а н н я міг р о з п і з н а т и в и к о р и с т а н и й
спосіб. Це м о ж у т ь бути додаткові р о з р я д и в к о м а н д і , а б о для різних типів к о м а н д за­
к р і п л ю в а т и с ь різні с п о с о б и адресації. Варіант ф о р м а т у к о м а н д и з п о л я м и для розпізна­
в а н н я т и п у адресації п р е д с т а в л е н о на рис. 3.21, де ТАЇ - поле, я к е вказує тип адресації,
я к и й в и к о р и с т а н о в полі А 1 , а ТА2 - поле, я к е в к а з у є т и п адресації, я к и й в и к о р и с т а н о в
полі А2.

коп ТАЇ А1 ТА 2 А2

Рис. 3.21. Формат команди з полями для розпізнавання типу адресації

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


О с т а н н я о т р и м у є т ь с я як результат о б р о б к и (модифікації) поточної адреси Ат: Ав = Бі
(Ат). Функція Бі з а д а є спосіб модифікації п о т о ч н о ї адреси з а л е ж н о від способу адресації.

3.4.1. Безпосередня адресація


П р и безпосередній адресації о п е р а н д з н а х о д и т ь с я б е з п о с е р е д н ь о в адресній частині
к о м а н д и (рис. 3.22), р о з р я д н і с т ь якої рівна р о з р я д н о с т і операнда.

КОП Операнд

Рис. 3.22. Безпосередня адресація

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


не л и ш одне з в е р н е н н я до п а м ' я т і . Він в и к о р и с т о в у є т ь с я для з а д а н и я констант, наперед
в і д о м и х чисел або п о ч а т к о в и х з н а ч е н ь змінних. Н е д о л і к о м є те, що р о з р я д н і с т ь операнда
о б м е ж у є т ь с я р о з р я д н і с т ю п о л я адреси в команді, я к е в б і л ь ш о с т і в и п а д к і в є з н а ч н о мен­
ш и м р о з р я д н о с т і даних.

3.4.2. Пряма адресація


П р и п р я м і й (або а б с о л ю т н і й ) адресації в а д р е с н о м у полі п р я м о вказується місце р о з ­
м і щ е н н я операнда, т о б т о в и к о н а в ч а адреса о п е р а н д а . П р и ц ь о м у м о ж л и в і два в и п а д к и :
п р я м а а д р е с а ц і я о с н о в н о ї п а м ' я т і О П , т а п р я м а а д р е с а ц і я регістрів регістрового ф а й л у
процесора.
В п е р ш о м у в и п а д к у адреса А к о м і р к и о с н о в н о ї п а м ' я т і із адресної ч а с т и н и АЧ ко­
м а н д и п о с т у п а є на адресні входи о с н о в н о ї п а м ' я т і ОП (рис. 3.23 а) і у в к а з а н у комірку в
р е ж и м і з а п и с у з а п и с у є т ь с я о п е р а н д із регістра д а н и х РгД, а в р е ж и м і з ч и т у в а н н я зчиту­
є т ь с я о п е р а н д в регістр д а н и х РгД.
В другому випадку адреса К регістра регістрового ф а й л у процесора із адресної частини
АЧ команди поступає на адресні входи регістрового ф а й л у процесора (рис. 3.23 Ь), і у вка­
з а н и й регістр в р е ж и м і з а п и с у з а п и с у є т ь с я о п е р а н д із регістра даних РгД, а в р е ж и м і
з ч и т у в а н н я з ч и т у є т ь с я о п е р а н д в регістр д а н и х РгД.
Г 09

АЧ АЧ
КОП І " А 1 оп І КОП І Й 1 Регістровий файл

і £=Ц , * ,
і РГД І ; РГД ]
а Ь
Рис. 3.23. Пряма адресація основної пам'яті а) та регістрового файлу процесора Ь)

Я к щ о о с н о в н а п а м ' я т ь м о ж е зберігати М слів, то, в и к о р и с т о в у ю ч и д в і й к о в е к о д у в а н ­


ня, необхідно ш біт для п р е д с т а в л е н н я а д р е с всіх к о м і р о к п а м ' я т і , де ш =]1од М [ . Зна­
чення в д у ж к а х означає більше ціле. Я к щ о р е г і с т р о в и й ф а й л м а є N регістрів, то, в и к о ­
ристовуючи двійкове к о д у в а н н я , необхідно п біт для п р е д с т а в л е н н я адрес всіх регістрів,
де п =]1од КІ[. О с к і л ь к и ч и с л о регістрів з н а ч н о м е н ш е кількості к о м і р о к пам'яті, то і р о з -
2

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


р о з р я д н і с т ь к о м а н д и в цілому. Н е х а й д л я п р и к л а д у кількість в и к о н у в а н и х в комп'ютері
команд рівна 256, т о б т о р о з р я д н і с т ь коду операції рівна 8 бітів, є м н і с т ь о с н о в н о ї п а м ' я т і
рівна 1ГБ, т о б т о р о з р я д н і с т ь а д р е с и р і в н а ЗО бітів, а кількість регістрів регістрового фай­
лу процесора рівна 64, тобто розрядність адреси рівна 6 бітів. На рис. 3.24 п о к а з а н о ф о р м а т и
д в о а д р е с н и х к о м а н д п р и п р я м і й адресації о с н о в н о ї п а м ' я т і т а р е г і с т р о в о г о ф а й л у п р о ­
цесора для наведеного прикладу.

ЗО ЗО
КОП А1 А2

КОП Я2

Рис. 3.24. Формати двоадресних команд при прямій адресації основної пам'яті
та регістрового файлу процесора для наведеного прикладу

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


другому в и п а д к у р о з р я д н і с т ь к о м а н д и рівна 20 бітів, т о б т о м е н ш а в 3,4 р а з и .
Для того, щ о б р о з п і з н а т и я к и й т и п п а м ' я т і а д р е с у є т ь с я - о с н о в н а п а м ' я т ь чи регі­
стровий файл п р о ц е с о р а , д о к о м а н д и в в о д и т ь с я спеціальне поле т и п у п а м ' я т і Т П , я к ц е
показано на рис. 3.25.

КОП ТП Адреса

Рис. 3.25. Команда з полем, яке вказує тип пам'яті

3.4.3. Непряма адресація


При н е п р я м і й адресації в а д р е с н о м у полі в к а з у є т ь с я місце р о з м і щ е н н я адреси опе­
ранда, а в и к о н а в ч а адреса з н а х о д и т ь с я н а с т у п н и м ч и н о м : А = [А ], де А - адреса к о м і р к и
1 1

пам'яті, в якій зберігається в и к о н а в ч а адреса. Адреса А із адресної ч а с т и н и АЧ к о м а н д и


поступає на адресні входи о с н о в н о ї п а м ' я т і ОП (рис. 3.26), з відповідної к о м і р к и о с н о -
по

вної п а м ' я т і ОП в и б и р а є т ь с я адреса операнда, по якій в відповідну комірку або регістр в


р е ж и м і з а п и с у з а п и с у є т ь с я о п е р а н д із регістра д а н и х РгД, а в р е ж и м і з ч и т у в а н н я зчиту­
ється о п е р а н д в регістр д а н и х РгД. Я к щ о п а м ' я т ь м о ж е зберігати М слів, то, в и к о р и с т о ­
вуючи двійкове к о д у в а н н я , необхідно пт біт для п р е д с т а в л е н н я всіх адрес, де т = ] к ^ М[.
З н а ч е н н я в д у ж к а х о з н а ч а є більше ціле. Д л я в и б і р к и о п е р а н д а необхідно здійснити два
звернення до ОП.

АЧ

коп А 1

ОП

РгД

Рис. 3.26. Непряма адресація основної пам'яті, яка вимагає здійснення двох звернень

Для з б е р і г а н н я а д р е с о п е р а н д і в м о ж н а в и к о р и с т а т и р е г і с т р о в и й ф а й л процесора
(рис. 3.27). Я к щ о р е г і с т р о в и й ф а й л м о ж е зберігати N слів, то, в и к о р и с т о в у ю ч и двійкове
к о д у в а н н я , необхідно п біт д л я п р е д с т а в л е н н я н е п р я м о ї адреси в адресній частині ко­
м а н д и , де п =]к^ ]М[, а р о з р я д н і с т ь регістрів буде рівною пт =]1од М[. З н а ч е н н я в дуж­
2

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


регістрової п а м ' я т і і одне з в е р н е н н я до о с н о в н о ї п а м ' я т і О П . Такий підхід д о з в о л я є при
малій р о з р я д н о с т і а д р е с н о ї ч а с т и н и к о м а н д и п з в е р т а т и с я до пам'яті великої ємності
м а ю ч и в е л и к у р о з р я д н і с т ь регістрів т .
АЧ
КОП К. Регістровий файл

ОП

РгД

Рис. 3.27. Непряма адресація основної пам'яті з використанням регістрового файлу процесора

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


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

зивається рангом гі. Р о з р і з н я ю т ь п е р ш и й , д р у г и й і т. д. р а н г и . П р я м а адресація - це адре­


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

3.4.4. Способи адресації операндів на основі операції зміщення


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

3.4.4.1. Відносна адресація

П р и відносній а д р е с а ц і ї д л я о т р и м а н н я в и к о н а в ч о ї а д р е с и о п е р а н д а вміст Б а д р е с ­
ного п о л я к о м а н д и д о д а є т ь с я д о в м і с т у п р о г р а м н о г о л і ч и л ь н и к а П Л , я к ц е п о к а з а н о
на рис. 3.28. Тобто вміст адресного поля к о м а н д и є з м і щ е н н я м відносно адреси поточної
команди. Даний тип адресації грунтується на тому, що при вибірці к о м а н д з в е р н е н н я від­
бувається до комірок пам'яті, розміщених поблизу одна від одної. Тим самим зменшується
довжина адресної частини команди, оскільки д о в ж и н а поля з м і щ е н н я може бути досить
малою. Більше того, при переміщенні п р о г р а м и в пам'яті значення з м і щ е н н я не змінюєть­
ся, оскільки взаємне р о з м і щ е н н я в пам'яті к о м а н д п р о г р а м и при ц ь о м у не змінюється.
АЧ

ПЛ оп

см

РгД

Рис. 3.28. Адресація основної пам'яті з використанням відносної адресації

Цей тип адресації іще н а з и в а є т ь с я в і д н о с н о ю а д р е с а ц і є ю з п е р е м і н н о ю базою, оскіль­


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

3.4.4.2. Базова адресація

П р и в и к о р и с т а н н і базової адресації (або б а з у в а н н я ) адресна ч а с т и н а к о м а н д и вмі­


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

с а м и м ф о р м у є т ь с я в и к о н а в ч а адреса операнда (рис. 3.29). Ця адреса поступає на адресні


входи основної пам'яті О П , у відповідну комірку якої в р е ж и м і з а п и с у записується операнд
із регістра д а н и х РгД, а в р е ж и м і з ч и т у в а н н я зчитується операнд в регістр даних РгД.
Д а н и й спосіб адресації д о з в о л я є п р а ц ю в а т и з о п е р а н д а м и із деякого сегмента пам'яті
не з м і н ю ю ч и базу. Він е ф е к т и в н и й п р и п о т р е б і о б р о б к и масиву даних. В якості бази тут
в и с т у п а є адреса п е р ш о г о е л е м е н т у масиву, а всі інші його елементи в к а з у ю т ь с я ш л я х о м
д о д а в а н н я з м і щ е н н я д о а д р е с и п е р ш о г о е л е м е н т у масиву.
Я к щ о о с н о в н а п а м ' я т ь м о ж е зберігати М слів, р е г і с т р о в и й ф а й л п р о ц е с о р а м о ж е збе­
рігати N слів, а сегмент м а є р о з м і р Ь слів, то, в и к о р и с т о в у ю ч и д в і й к о в е к о д у в а н н я , поле
В буде з а й м а т и п біт, де п =]Іо§ 1М[, поле Б буде з а й м а т и 1 біт, де 1 =]\о§ Ц, а р о з р я д н і с т ь
регістрів буде р і в н о ю т =]log М [ . З н а ч е н н я в д у ж к а х о з н а ч а є більше ціле.

АЧ
Зміщення

Регістровий файл

База ОП

СМ

РгД

Рис. 3.29. Базова адресація ОП з використанням бази із регістрової пам'яті

О с н о в н а п е р е в а г а відносної адресації - с к о р о ч е н н я д о в ж и н и к о м а н д и за рахунок


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

3.4.4.3. Індексна адресація

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


ш е н н я а б о з м е н ш е н н я а д р е с и на д е я к у величину. Цей спосіб адресації подібний до від­
носної адресації, п р и якій адреса м о ж е а в т о м а т и ч н о з м і н ю в а т и с я в процесі в и к о н а н н я
п р о г р а м и . Індексація є з а с о б о м д л я б а г а т о к р а т н о г о в и к о н а н н я о д н и х і тих же відрізків
п р о г р а м и над р і з н и м и н а б о р а м и ( м а с и в а м и ) вхідних даних. Тим с а м и м забезпечується
м і н і м а л ь н а з а л е ж н і с т ь д о в ж и н и п р о г р а м и від кількості п о в т о р ю в а н и х відрізків програ­
ми. П р и ц ь о м у коди к о м а н д п р о г р а м и з а л и ш а ю т ь с я без змін. Для о т р и м а н н я в и к о н а в ­
чої а д р е с и а д р е с н а ч а с т и н а к о м а н д и д о д а є т ь с я до в м і с т у спеціального регістра, в я к о м у
зберігається н о м е р о б р о б л ю в а н о г о м а с и в у чисел. Ці регістри н а з и в а ю т ь індексними, а їх
вміст - індексною в е л и ч и н о ю , або індексом (рис. 3.30).
113

АЧ

База
А

Регістровий файл

Індекс ОП

СМ

РгД

Рис. 3.30. Формування адреси при використанні індексної адресації

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


кількох індексних регістрів в ц и х р о з р я д а х к о м а н д и в к а з у є т ь с я н о м е р того індексного
регістра, в я к о м у зберігається з н а ч е н н я індексу о б р о б л ю в а н о г о в д а н и й час м а с и в у ін­
формації. Індекси м о ж у т ь зберігатися як в с п е ц і а л ь н и х індексних регістрах, так і в регі­
стровій пам'яті п р о ц е с о р а . Вміст індексних регістрів з м і н ю є т ь с я після з а к і н ч е н н я деяко­
го ц и к л у о б р о б к и . П р и ц ь о м у до п о п е р е д н ь о г о з н а ч е н н я індексу д о б а в л я є т ь с я приріст,
значення я к о г о з а л е ж и т ь від р о з м і щ е н н я о п е р а н д і в в пам'яті.
Різновидністю індексної адресації є автоіндексація, при якій з н а ч е н н я індексу є відо­
м и м наперед. Н а й ч а с т і ш е о п е р а н д и р о з м і щ у ю т ь с я в п а м ' я т і п о с л і д о в н о і т о м у це зна­
чення рівне + 1 (так з в а н а а в т о і н к р е м е н т н а адресація) або -1 (так з в а н а а в т о д е к р е м е н т н а
адресація). П о р я д о к ф о р м у в а н н я адреси при в и к о р и с т а н н і а в т о і н к р е м е н т н о ї т а автоде-
крементної адресації п о к а з а н о на рис. 3.31, де для з а б е з п е ч е н н я п е р е м і щ е н н я по комір­
ках пам'яті в и к о р и с т о в у є т ь с я л і ч и л ь н и к .

АЧ

База
+ 1/-1
Лічильник ОП

А
СМ •

РгД

Рис. 3.31. Формування адреси при використанні автоінкрементної


та автодекрементної адресації

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


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

Я3а«. 371.
774

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


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

3.4.5. Сторінкова адресація

П р и сторінковій адресації а д р е с н и й п р о с т і р пам'яті р о з б и в а є т ь с я н а сторінки рівно­


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

Регістровий файл

База

срА 1\ мрА
А

РгД

Рис. 3.32. Формування адреси при використанні сторінкової адресації

3.4.6. Неявна адресація


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

3.4.7. Стекова адресація


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

Широко в и к о р и с т о в у є т ь с я в м і к р о п р о ц е с о р а х і м і к р о к о м п ' ю т е р а х . П р и н ц и п и організа­


ції стекової адресації ілюструє рис. 3.33.
Вказівник стека зказівник стека

Адреса Адреса

Стек Стек
1000 1000
1001 1001

РгД РгД

При запису При зчитуванні


Рис. 3.33. Стекова адресація

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


заданому порядку, а саме відповідно до п р а в и л а організації п а м ' я т і з п о с л і д о в н и м до­
ступом т и п у FILO. Місце р о з м і щ е н н я п е р ш о г о даного м а с и в у н а з и в а є т ь с я д н о м стека,
а о с т а н н ь о г о - в е р ш и н о ю стека. Д л я з а п и с у та ч и т а н н я д а н и х передбачено дві операції:
push ( в ш т о в х у в а н н я даних в стек) та pop ( в и ш т о в х у в а н н я д а н и х зі стеку). О п е р а ц і ї з о ­
внішнього з а п и с у та ч и т а н н я м о ж л и в і тільки з в е р ш и н о ю стека. На її н о м е р вказує вміст
вказівника стека. П р и з а п и с у всі дані в стеку з м і щ у ю т ь с я на о д н у п о з и ц і ю в н и з , а п р и
з ч и т у в а н н і з м і щ у ю т ь с я на одну п о з и ц і ю вверх. На р и с у н к у 3.34 п о к а з а н о ф у н к ц і о н у ­
в а н н я стека при з а п и с у та з ч и т у в а н н і д а н и х при в и к о н а н н і двомісної операції м н о ж е н н я
числа 50 на число 10 в а р и ф м е т и к о - л о г і ч н о м у п р и с т р о ї із з а п и с о м р е з у л ь т а т у в стек.

Вказівник стека Вказівник стека Вказівник стека

104 103 103

озп озп озп


101 зо 101 зо 101 зо
20
*-
102 20 102 20 102
103 10 103 10 103 500
104 50 104 104
105 105 105

АЛП АЛП АЛП

1-й такт - зчитування 2-й такт - зчитування 3-й такт - запис

Рис. 3.34. Виконання двомісної операції з використанням стека

3.4.8. Використання стекової адресації


З а з в и ч а й в математиці п р и й н я т о з а п и с у в а т и з н а к операції м і ж о п е р а н д а м и , н а п р и ­
клад а+Ь, с:сі і т. д. Такий з а п и с н а з и в а ю т ь інфіксним. П р и в и к о р и с т а н н і такого з а п и с у
для обчислення складного в и р а з у необхідно з а д а в а т и п р і о р и т е т и о п е р а ц і й . Н а п р и к л а д ,
в алгебраїчному виразі
а + Ьс/сі - {
пріоритети м о ж у т ь бути наступні: х, /, +, -.
П6

І н ш и й підхід, я к и й з а б е з п е ч у є п р а в и л ь н е в и к о н а н н я інфіксного з а п и с у - в и к о р и с ­
т а н н я д у ж о к , п р и ч о м у , з т и м , що о б ч и с л е н н я п р о в о д и т ь с я від в н у т р і ш н і х д у ж о к до з о ­
внішніх. В д у ж к о в і й ф о р м і н а в е д е н и й в и р а з п р и й м е вигляд:
(( а + ((Ьс)/а)) - 0.
Замість аналізу п р і о р и т е т у знаків о п е р а ц і й т у т необхідно в и з н а ч и т и д у ж к и з най­
більшою глибиною вкладення.
Д л я реалізації н а в е д е н о г о в и р а з у в к о м п ' ю т е р і м о ж н а в и к о р и с т а т и всі р а н і ш е описа­
ні с п о с о б и адресації.
П о л ь с ь к и й м а т е м а т и к Я н Л у к а ш е в и ч п о к а з а в , щ о я к щ о з н а к и а р и ф м е т и ч н и х опе­
рацій з а п и с у в а т и перед о п е р а н д а м и ( п р е ф і к с н а ф о р м а ) ч и після о п е р а н д і в (постфіксна
ф о р м а , а б о о б е р н е н и й п о л ь с ь к и й з а п и с ) , т о д л я в и з н а ч е н н я п о р я д к у в и к о н а н н я опера­
цій д у ж к и с т а ю т ь н е п о т р і б н и м и .
Так, д л я наведеного в и щ е в и р а з у п р е ф і к с н а ф о р м а м а є вигляд:
- + а / х Ь с сі { ,
а п о с т ф і к с н а ф о р м а м а є вигляд:
а Ь с х о\ / + {-.
Ця ф о р м а - о б е р н е н и й п о л ь с ь к и й з а п и с .
О б е р н е н и й п о л ь с ь к и й з а п и с п р е к р а с н о п і д х о д и т ь для п р о в е д е н н я о б ч и с л е н ь н а
к о м п ' ю т е р і зі стеком.
Я к щ о в и р а з с к л а д а є т ь с я із N с и м в о л і в , то а л г о р и т м його о б ч и с л е н н я на стеку м о ж н а
п р е д с т а в и т и у вигляді блок-схеми, п о к а з а н о ї на рис. 3.35.

Задати N
Вставити к = 1

к:=к+1

Результат знаходиться
у вершині стека

Рис. 3.35. Блок-схема обчислення на стеку виразу, представленого в постфіксній формі

Р о з г л я н е м о п о т а к т о в и й стан к о м і р о к стеку п р и реалізації р а н і ш е р о з г л я н у т о г о в и ­


разу, з а п и с а н о г о в постфіксній ф о р м і (рис. 3.36).
117

а+Ьс/(1 а+Ьс/<1 а+Ьс/сМ


Ь*с Ь*с ь*с/а {

1 2 3 4 5 6 7 8 9
Рис. 3.36. Використання стека при розрахунку по формулі в оберненому польському запису

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


числень з в и к о р и с т а н н я м стека м а є вигляд, п о к а з а н и й на рис. 3.37.
Зсув вверх

Зсув вниз

Ргі АЛП РгЗ Ргп


Із ОП

Рис. 3.37. Схема обчислень з використанням регістрового стека

А л г о р и т м ф у н к ц і о н у в а н н я т а к и й ж е , я к в и щ е о п и с а н о ф у н к ц і о н у в а н н я н а базі о с н о в ­
ної пам'яті О П . О п е р а ц і я в и к о н у є т ь с я н а д в м і с т о м Р г і і результат р о з м і щ у є т ь с я в Р г і , а
вміст н и ж н і х регістрів з м і щ у є т ь с я на о д и н к р о к вверх.

3.4.9. Вибір способів адресації операндів


В табл. 3.8 н а в е д е н о перелік та к о р о т к и й о п и с р і з н и х способів адресації, з р о б л е н и й
на основі в и щ е наведеного розгляду. К о ж н и й спосіб має свої переваги та с ф е р у доціль­
ного з а с т о с у в а н н я .
Таблиця 3.8

Основні способи адресації

Спосіб адресації Місце розміщення операнда


Безпосередня Значення операнда знаходиться в полі адресної частини команди
Пряма Адреса операнда знаходиться в полі адресної частини команди
Непряма Адресна частина команди вказує адресу розміщення операнда
Виконавча адреса формується шляхом додавання до вмісту
Базова
регістра бази зміщення із поля адресної частини команди
Виконавча адреса формується шляхом додавання вмісту
Відносна
адресного поля команди до вмісту програмного лічильника
Виконавча адреса формується шляхом додавання вмісту
Індексна
адресного поля команди до вмісту спеціального регістра
Неявна Адреса операнда в явному вигляді в команді відсутня
Виконавча адреса формується шляхом конкатенації зміщення з
Сторінкова
адресної поля команди до початкової адреси
Стекова Операнд розміщений у вершині стека
118

Ч а с т о т а в и к о р и с т а н н я р і з н и х способів адресації в к о м п ' ю т е р а х з а л е ж и т ь від бага­


т ь о х ф а к т о р і в : т и п у а р х і т е к т у р и , в и м о г д о п а р а м е т р і в комп'ютера, характеру вирішу­
в а н и х задач. За час і с н у в а н н я о б ч и с л ю в а л ь н о ї техніки була с т в о р е н а велика кількість
комп'ютерів, у я к и х з а с т о с о в а н о різноманітні с п о с о б и адресації та 'їх п о є д н а н н я . Тому
дати о д н о з н а ч н у відповідь с т о с о в н о в и б о р у н а й к р а щ о г о н а б о р у способів адресації
п р а к т и ч н о н е м о ж л и в о . Але т а к о м у в и б о р у м о ж е д о п о м о г т и аналіз частоти застосуван­
ня р і з н и х способів адресації п р и в и р і ш е н н і на к о м п ' ю т е р а х складних тестових задач,
як н а п р и к л а д , п р о г р а м TeX, gcc та spice, як це п о к а з а н о на рис. 3.38, які т е с т у в а л и с я на
комп'ютері V A X фірми D E C .

0% 10% 20% 30% 40% 50% «0%

Рис. 3.38. Частота використання способів адресації при виконанні програм ТеХ,
spice ma gcc на комп'ютері VAX фірми DEC

Видно, що з в и к о р и с т о в у в а н и х способів адресації н а й ч а с т і ш е застосовується безпо­


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

3.5. Приклади форматів команд


П р и розгляді систем к о м а н д будемо в и к о р и с т о в у в а т и р о з п о в с ю д ж е н і скорочені по­
з н а ч е н н я типів к о м а н д : RR - регістр-регістр, RI - регістр-безпосередній операнд, RS -
р е г і с т р - п а м ' я т ь , RX - р е г і с т р - і н д е к с о в а н а п а м ' я т ь , SI - п а м ' я т ь - б е з п о с е р е д н і й операнд,
SS - п а м ' я т ь - п а м ' я т ь , а т а к о ж п о з н а ч е н н я : К О П - код операції, R-регістр, S - пам'ять,
X - індекс, В - б а з о в а адреса, D - з м і щ е н н я , А - адреса пам'яті, L - д о в ж и н а , С - н о м е р
с и м в о л у в с к л а д н о м у слові.
Ф о р м а т и к о м а н д к о м п ' ю т е р і в різних типів д е т а л ь н о р о з г л я н у т і в літературі та в
технічній д о к у м е н т а ц і ї на ці к о м п ' ю т е р и . На рис. 3.39 п о к а з а н о три групи узагальне­
н и х ф о р м а т і в команд, які використовувалися та використовуються зараз в комп'ютерах: а
- змінний, b - ф і к с о в а н и й та с - гібридний ф о р м а т и .
119

КОП та кількість Тип Тип


Адреса 1 Адреса k
операндів J адресації 1 адресації k

а) Змінний формат (комп'ютери VAX, Intel 80x86 та Інші)

КОП Адреса 1 Адреса 2 Адреса 3

Ь) Фіксований формат (комп'ютери Alpha, ARM, MIPS, SPARS та інші)

Тип
КОП Адреса
адресації

Тип Тип
КОП Адреса 1
адресації 1 адресації 2

Тип
КОП Адреса 1 Адреса 2
адресації

с) Гібридний формат (комп'ютери IBM 360/70, MIPS16, Thumb, TMS320C64X та інші)

Рис. 3.39. Використовувані в комп'ютерах формати команд

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


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

3.5.1. Формати команд комп'ютерної системи IBM 370


В системі I B M 370 використо­
вувалися три варіанти довжини Формат RR КОП К1 К2
R-DeriCTD
команди: двобайтова, чотирибай- І 4 4

това, шестибайтова. Також вико­ Формат RRE КОП Kl R2


індекс
ристовувалися два варіанти довжи­ 16 8 4 4 в - регістр бази
D - зміщення
ни коду операції: однобайтовий Формат RX КОП К1 Х2 B2 D2

та двобайтовий. В сумі це складає 8 4 4 4 12 S- пам'ять


десять різних форматів команд. На B2 D2
Формат RS КОП R1 КЗ I - поле безпосе-
рис. 3.40 наведено формати команд 8 4 4 4 12 редньо з даним
комп'ютерної системи I B M 370.
Формат SI КОП Coast Bl DI
Тип ф о р м а т у к о м а н д и вказу­ 8 > 4 12

ється п е р ш и м и д в о м а р о з р я д а м и
Формат S КОП В2 D2
коду операції К О П : 00 - RR; 01 -
16 4 12
RX; 10 - RRE, RS, R X , S, SI; 11 - SS,
Формат SS(OL) КОП L Bl DI В2 D2
SSE. К о р о т к о о п и ш е м о кожен тип
8 8 4 12 4 12
команди.
Формат SS(TL) КОП LI 12 Bl Dl B2 D2
Команда регістр-регістр RR.
8 4 4 4 12 4 12
Цей ф о р м а т команди є д в о б а й т о -
Формат SS(RS) КОП Bl Dl В2 D2
вим. В адресній частині з в е р н е н н я Kl KJ

8 4 4 4 12 4 12
відбувається до регістрів. Оскіль­
ки багато операцій в и к о н у є т ь с я з Формат SSE КОП Bl Dl В2 D2

16 4 12 4 12
в и к о р и с т а н н я м регістрів, т а к и й
формат при своїй к о м п а к т н о с т і є Рис. 3.40. Формати команд комп'ютерної
досить е ф е к т и в н и м . системи IBM 370
720

Р о з ш и р е н а к о м а н д а регістр-регістр R R E (Е - Extended). Цей ф о р м а т використовуєть­


ся для декількох с п е ц і а л ь н и х п р и в і л е й о в а н и х к о м а н д о п е р а ц і й н о ї системи. Р о з ш и р е н и й
код операції д о з в о л я є в и к о н а н н я д о д а т к о в и х о п е р а ц і й . Поле після коду операції не в и ­
користовується.
К о м а н д а р е г і с т р - і н д е к с о в а н а п а м ' я т ь R X . З а цією к о м а н д о ю п е р ш и й о п е р а н д зна­
х о д и т ь с я в регістрі, а д р у г и й о п е р а н д о б ч и с л ю є т ь с я ш л я х о м д о д а в а н н я 12-розрядного
з м і щ е н н я D2 до в м і с т у регістра б а з и В2 та індексного регістра Х2. О б и д в а регістри на­
л е ж а т ь до регістрів з а г а л ь н о г о п р и з н а ч е н н я .
К о м а н д а р е г і с т р - п а м ' я т ь RS. Ця к о м а н д а м а є т р и а д р е с н и й формат. Тут т а к о ж є три
з в е р н е н н я до регістрів, але в о н и в к а з у ю т ь на т р и різних о п е р а н д и . Третій регістр в и к о ­
р и с т о в у є т ь с я я к регістр б а з и , д о я к о г о додається з м і щ е н н я .
К о м а н д а п а м ' я т ь - б е з п о с е р е д н і й о п е р а н д SI (I - Immediate). Тут адреса п е р ш о г о опе­
р а н д а в и р а х о в у є т ь с я ш л я х о м д о д а в а н н я з м і щ е н н я до б а з и , а другий о п е р а н д знаходить­
ся б е з п о с е р е д н ь о в 8 - р о з р я д н о м у полі адреси.
К о м а н д а п а м ' я т ь S. Це п р и в і л е й о в а н а к о м а н д а , я к а в и к о р и с т о в у є т ь с я для введення-
в и в е д е н н я або с и с т е м о ю к о н т р о л ю ф у н к ц і й . Тут в и к о р и с т о в у є т ь с я р о з ш и р е н и й 16-роз-
р я д н и й код операції. А д р е с а другого о п е р а н д а в и р а х о в у є т ь с я ш л я х о м д о д а в а н н я змі­
щ е н н я до бази. А д р е с а ж п е р ш о г о операнда, я к щ о він є, в к а з у є т ь с я кодом операції.
К о м а н д а п а м ' я т ь - п а м ' я т ь SS. Ця к о м а н д а з а й м а є 6 б а й т і вказує на два о п е р а н д и , р о з ­
міщені в пам'яті. Н а с т у п н і після коду операції 8 біт м о ж у т ь бути в и к о р и с т а н і трьома
в а р і а н т а м и : в ф о р м а т і о д и н о ч н о ї д о в ж и н и (OL) поле L в к а з у є кількість байт, які будуть
оброблені; в ф о р м а т і п о д в і й н о ї д о в ж и н и (EL) поле L в к а з у є д о в ж и н у д в о х операндів у
б а й т а х (цей ф о р м а т в и к о р и с т о в у є т ь с я для к о м а н д десяткової а р и ф м е т и к и ; третій варі­
а н т (RS) в и к о р и с т о в у є т ь с я в декількох п р и в і л е й о в а н и х командах, в я к и х другий байт
в к а з у є на два регістри з а г а л ь н о г о п р и з н а ч е н н я . Ці регістри в м і щ у ю т ь п о к а ж ч и к и або
іншу керуючу і н ф о р м а ц і ю .
Р о з ш и р е н а к о м а н д а п а м ' я т ь - п а м ' я т ь SSE. Цей ф о р м а т т а к о ж в и к о р и с т о в у є т ь с я в де­
кількох п р и в і л е й о в а н и х к о м а н д а х з р о з ш и р е н и м к о д о м операції. Адреса п е р ш о г о та дру­
гого о п е р а н д і в в и р а х о в у є т ь с я ш л я х о м д о д а в а н н я з м і щ е н н я д о бази.

3.5.2. Формати команд комп'ютера Cyber-70


Розглянемо іще одну систему команд, яка використовувалась в комп'ютері Cyber-70
(рис. 3.41). її відмінністю від інших є нестандартна д о в ж и н а розрядної сітки, кратна трьом.

1) icon R1 R2 R3 2) КОН R1 N

6 J 3
і 6 3 (

3) кои R1 R2 Л

f 3 3 11

4) кон R1 А

9 3 1к

5) коп L1 Л) L2

9 3 II 4

Рис. 3.41. Формат команди комп'ютера Cyber-70


121

Тут А - адреса пам'яті, К - адреса регістра, Ь - д о в ж и н а операнда, С - н о м е р с и м в о ­


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

3 . 5 . 3 . Формати команд сучасного комп'ютера


Ф о р м а т и к о м а н д сучасного к о м п ' ю т е р а на п р и к л а д і к о м п ' ю т е р а ПЬХ, я к и й є у з а г а л ь ­
ненням цілого с п е к т р а сучасних к о м п ' ю т е р і в , п о д а н о на рис. 3.42.
Команда типу І

OpCode rs1 rd immediate

Команда типу R

OpCode rs1 rs2 rd function

Команда т и п у }

OpCode Offset added to PC

Рис. 3.42. Формати команд комп'ютера DLX

Дамо к о р о т к е п о я с н е н н я щ о д о н а в е д е н и х н а р и с у н к у ф о р м а т і в к о м а н д .
• К о м а н д а т и п у І о п р а ц ь о в у є б е з п о с е р е д н і й о п е р а н д (Immediate).
• Команда т и п у R о т р и м у є пару о п е р а н д і в із д ж е р е л ь н и х регістрів (Registers) регі­
стрового ф а й л а п р о ц е с о р а т а п о в е р т а є результат з н о в т а к и д о регістра п р и з н а ч е н н я ц ь о ­
го файла.
• Команда т и п у } є к о м а н д о ю б е з у м о в н о г о переходу (Jump).
• Opcode є полем коду операції К О П , д о в ж и н а я к о г о с т а н о в и т ь 6 бітів.
• r s l , rs2 є п о л я м и з д о в ж и н о ю 5 бітів, що в и з н а ч а ю т ь н о м е р и р е г і с т р і в - д ж е р е л опе­
рандів (register of source) та п р о г р а м н о в и б и р а ю т ь с я серед регістрів R0...R31 р е г і с т р о в о ­
го файла.
• rd є п ' я т и б і т о в и м полем н о м е р а р е г і с т р а п р и з н а ч е н н я , п р и й м а ч а р е з у л ь т а т у дії
(register of destination). Регістр п р и з н а ч е н н я т а к о ж в и б и р а ю т ь із м н о ж и н и R0...R31 регі­
с т р о в о г о файла.
• Immediate - це 16-бітове поле, що м і с т и т ь б е з п о с е р е д н і й о п е р а н д . П р и ц ь о м у л і в и й
р о з р я д immediate р о з г л я д а ю т ь я к з н а к о в и й . П р и в и к о р и с т а н н і б е з п о с е р е д н і й о п е р а н д
р о з ш и р ю ю т ь вліво за п р а в и л а м и д о п о в н я л ь н о г о коду до 32-х бітів.
• Function - це поле, що в и з н а ч а є ф у н к ц і ю , я к а р о з ш и р ю є на 2 - 1 = 2047 к о м б і н а ц і й
й

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


• Offset added to PC - це 26-бітова к о н с т а н т а , я к у д о д а ю т ь до в м і с т у регістра на­
ступної адреси п р и в и к о н а н н і к о м а н д и б е з у м о в н о г о переходу.
Особливості форматів команд комп'ютера D L X :
• Д о в ж и н а усіх ф о р м а т і в - 32 біти.
• Реалізовано т и п архітектури р е г і с т р - р е г і с т р .
722

• Р е а л і з о в а н о ф і к с о в а н у систему поділу ф о р м а т і в на поля.


• Усі к о м а н д и з п о г л я д у їхньої о б р о б к и поділено на три групи: операції А Л П , опера­
ції з ч и т у в а н н я / з а п и с у , операції к е р у в а н н я в и к о н а н н я м п р о г р а м и .
Ф о р м а т и к о м а н д А Л П є т р и а д р е с н и м и , а саме, OP R X , R Y , R Z . Вони є м а й ж е з б і ж н и м и
з ф о р м а т а м и к о м а н д м і к р о п р о ц е с о р а М 8 8 Х 0 0 ф і р м и Motorola. О с т а н н і й , р а з о м із м і к р о ­
п р о ц е с о р а м и ІВМ801 та A M D 2 9 0 0 0 у середині 80-х років склав історично п е р ш у трійку
серійних к о м п ' ю т е р і в з а р х і т е к т у р о ю RISC.

3.6. Вплив технології компілювання на систему команд комп'ютера


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

Перехід з мови високого рівня


до простої проміжної мови

Високорівнена оптимізація

І
Глобальна оптимізація

Т
Генерація коду

Рис. 3.43. Структура компілятора


123

3.7. Архітектура системи команд комп'ютера

3.7.1. Класифікація архітектури комп'ютера за складом системи команд


Як вже було відмічено, р о з г л я д а р х і т е к т у р и к о м п ' ю т е р а на рівні системи к о м а н д
встановлює м е ж у м і ж а п а р а т у р о ю і п р о г р а м н и м з а б е з п е ч е н н я м і д о з в о л я є п о б а ч и т и
комп'ютер на рівні, я к и й в и д и м и й програмісту, що п р а ц ю є на мові асемблера, а б о р о з ­
р о б н и к у компіляторів.
За складом системи к о м а н д к о м п ' ю т е р и м о ж у т ь бути поділені на н а с т у п н і т и п и :
• к о м п ' ю т е р и із складною (комплексною) системою к о м а н д (КССК, Complex Instruc­
tion Set Computers - CISC);
• комп'ютери з п р о с т о ю ( с п р о щ е н о ю ) системою к о м а н д ( К П С К , Reduced Instruction
Set Computers - RISC);
• комп'ютери з д о п о в н е н о ю с и с т е м о ю к о м а н д (КДСК, Supplemented Instruction Set
Computers - SISC). В т а к и х к о м п ' ю т е р а х складна або п р о с т а система к о м а н д д о п о в н ю ­
ється к о м а н д а м и , о р і є н т о в а н и м и н а к о н к р е т н у область в и к о р и с т а н н я . Д о т а к и х к о м п ' ю ­
терів, зокрема, в і д н о с я т ь с я п р о г р а м о в а н і п р о ц е с о р и о б р о б к и сигналів (Programmable
Digital Signal Processors);
• комп'ютери з о р і є н т о в а н о ю (спеціалізованою) системою к о м а н д ( K O C K , Applicati­
on Specific Instruction Set Computers - ASISC).
Далі ці архітектури будуть р о з г л я н у т і д е т а л ь н о .

3.7.2. Комп'ютери із складною та з простою системами команд


Двома о с н о в н и м и а р х і т е к т у р а м и , які р о з р і з н я ю т ь с я за с к л а д о м системи к о м а н д , а
відповідно і за і н ш и м и елементами, що буде п о к а з а н о в подальшому, та які н а й ш и р ш е в и ­
користовуються к о м п ' ю т е р н о ю п р о м и с л о в і с т ю на с у ч а с н о м у етапі, є а р х і т е к т у р и КССК
та КПСК (CISC і RISC). О с н о в о п о л о ж н и к о м архітектури К С С К м о ж н а в в а ж а т и к о м п а н і ю
I B M з її базовою архітектурою ІВМ/360, я д р о якої в и к о р и с т о в у є т ь с я з 1964 р о к у і д і й ш л о
до наших днів, н а п р и к л а д , в т а к и х сучасних м е й н ф р е й м а х , як I B M ES/9000.
Лідером в розробці мікропроцесорів на основі архітектури К С С К є компанія Intel зі сво­
їми серіями х86 і Pentium. Ця архітектура д е - ф а к т о є стандартом для р и н к у м і к р о к о м п ' ю -
терів. Для архітектури К С С К характерне п о р і в н я н о невелике число регістрів загального
призначення; велика кількість м а ш и н н и х команд, деякі з я к и х с е м а н т и ч н о н а в а н т а ж е н і
аналогічно операторам мов п р о г р а м у в а н н я високого рівня і в и к о н у ю т ь с я за багато тактів;
велика кількість методів адресації; велика кількість ф о р м а т і в к о м а н д різної розрядності;
переважання двоадресного ф о р м а т у команд; наявність к о м а н д т и п у регістр-пам'ять.
О с н о в о ю архітектури сучасних р о б о ч и х станцій і серверів є архітектура к о м п ' ю т е р а
з простою системою к о м а н д К П С К . Зачатки цієї архітектури й д у т ь своїм к о р і н н я м до
комп'ютерів C D C 6600, р о з р о б н и к и я к и х (Торнтон, Крей т а ін.) у с в і д о м и л и в а ж л и в і с т ь
с п р о щ е н н я набору к о м а н д для п о б у д о в и ш в и д к и х о б ч и с л ю в а л ь н и х м а ш и н . Ц ю т р а д и ­
цію с п р о щ е н н я архітектури С. Крей з успіхом з а с т о с у в а в п р и с т в о р е н н і ш и р о к о відомої
серії суперкомп'ютерів компанії Cray Research. П р о т е о с т а т о ч н о п о н я т т я к о м п ' ю т е р а з
простою системою к о м а н д в с у ч а с н о м у його р о з у м і н н і с ф о р м у в а л о с я на базі т р ь о х д о ­
слідницьких п р о е к т і в комп'ютерів: п р о ц е с о р а 801 компанії I B M , п р о ц е с о р а RISC у н і в е р ­
ситету Берклі та п р о ц е с о р а M I P S С т е н ф о р д с ь к о г о університету.
J 24

Р о з р о б к а е к с п е р и м е н т а л ь н о г о п р о е к т у к о м п а н і ї I B M п о ч а л а с я ще в кінці 70-х років,


але його результати ніколи не п у б л і к у в а л и с я і к о м п ' ю т е р на його основі в п р о м и с л о в и х
м а с ш т а б а х не в и г о т о в л я в с я . У 1980 р о ц і Д. П а т т е р с о н із колегами з університету Бер-
клі п о ч а л и свій п р о е к т і в и г о т о в и л и дві м а ш и н и , які о д е р ж а л и н а з в и RISC-I і RISC-II.
Головними ідеями ц и х м а ш и н було відділення повільної п а м ' я т і від в и с о к о ш в и д к і с н и х
регістрів і в и к о р и с т а н н я р е г і с т р о в и х вікон. У 1981 р о ц і Д ж . Хеннессі із своїми колегами
о п у б л і к у в а в о п и с с т е н ф о р д с ь к о ї м а ш и н и M I P S , о с н о в н и м а с п е к т о м р о з р о б к и якої була
е ф е к т и в н а р е а л і з а ц і я к о н в е є р н о ї о б р о б к и з а д о п о м о г о ю р е т е л ь н о г о п л а н у в а н н я компі­
л я т о р о м його з а в а н т а ж е н н я .
Ці т р и м а ш и н и м а л и багато спільного. Всі в о н и д о т р и м у в а л и с я архітектури, що від­
о к р е м л ю є к о м а н д и о б р о б к и від к о м а н д р о б о т и з п а м ' я т т ю , і р о б и л и акцент на е ф е к т и в ­
н у к о н в е є р н у обробку. С и с т е м а к о м а н д р о з р о б л я л а с я так, щ о б в и к о н а н н я будь-якої ко­
м а н д и з а й м а л о н е в е л и к у кількість м а ш и н н и х тактів ( п е р е в а ж н о один м а ш и н н и й такт).
С а м а логіка в и к о н а н н я к о м а н д з м е т о ю п і д в и щ е н н я п р о д у к т и в н о с т і о р і є н т у в а л а с я на
апаратну, а не на м і к р о п р о г р а м н у р е а л і з а ц і ю . Щ о б с п р о с т и т и логіку д е к о д у в а н н я ко­
м а н д , в и к о р и с т о в у в а л и с я к о м а н д и фіксованої д о в ж и н и і ф і к с о в а н о г о формату.
Серед і н ш и х о с о б л и в о с т е й а р х і т е к т у р и К П С К слід з а з н а ч и т и н а я в н і с т ь д о с и т ь вели­
кого р е г і с т р о в о г о фажта. тжсдал гр^яітоаур^ ¥5\Сл\ реалізуються У1 або більша кіль­
кість регістрів у п о р і в н я н н і з 8-16 р е г і с т р а м и в архітектурі К С С К ) , що д о з в о л я є більшо­
му о б ' є м у д а н и х зберігатися в регістрах на к р и с т а л і п р о ц е с о р а б і л ь ш и й час і с п р о щ у є
р о б о т у к о м п і л я т о р а п р и р о з п о д і л і регістрів під змінні. Для о б р о б к и , я к п р а в и л о , в и к о ­
р и с т о в у ю т ь с я т р и а д р е с н і к о м а н д и , щ о , крім с п р о щ е н н я д е ш и ф р у в а н н я , дає можливість
зберігати б і л ь ш у кількість з м і н н и х в регістрах без їх п о д а л ь ш о г о п е р е з а в а н т а ж е н н я .
До часу з а в е р ш е н н я у н і в е р с и т е т с ь к и х п р о е к т і в (1983-1984 pp.) відбувся т а к о ж п р о ­
р и в у технології в и г о т о в л е н н я н а д в е л и к и х і н т е г р а л ь н и х схем. П р о с т о т а архітектури та її
е ф е к т и в н і с т ь , п і д т в е р д ж е н а ц и м и п р о е к т а м и , в и к л и к а л и в е л и к и й інтерес в комп'ютер­
ній індустрії, і з 1986 р о к у п о ч а л а с я а к т и в н а п р о м и с л о в а р е а л і з а ц і я архітектури КПСК.
Д о т е п е р і ш н ь о г о часу ц я а р х і т е к т у р а м і ц н о з а й м а є лідируючі п о з и ц і ї н а світовому
к о м п ' ю т е р н о м у р и н к у р о б о ч и х с т а н ц і й і серверів.
Р о з в и т о к а р х і т е к т у р и К П С К з н а ч н о ю м і р о ю в и з н а ч а в с я п р о г р е с о м у області ство­
р е н н я о п т и м і з у ю ч и х к о м п і л я т о р і в . С а м е сучасна технологія к о м п і л я ц і ї д о з в о л я є ефек­
т и в н о в и к о р и с т о в у в а т и п е р е в а г и б і л ь ш о г о р е г і с т р о в о г о ф а й л а , к о н в е є р н о ї організації
т а більшої ш в и д к о с т і в и к о н а н н я к о м а н д . Сучасні к о м п і л я т о р и в и к о р и с т о в у ю т ь т а к о ж
п е р е в а г и і н ш о ї технології о п т и м і з а ц і ї д л я п і д в и щ е н н я п р о д у к т и в н о с т і , з а з в и ч а й в ж и ­
ваної в к о м п ' ю т е р а х К П С К : р е а л і з а ц і ю з а т р и м а н и х переходів і с у п е р с к а л я р н о ї о б р о б к и ,
що д о з в о л я є в один і той же м о м е н т часу в и д а в а т и на в и к о н а н н я декілька команд.
Слід з а з н а ч и т и , що в о с т а н н і х р о з р о б к а х к о м п а н і ї Intel ( м а ю т ь с я на увазі Pentium
Р54С і п р о ц е с о р н а с т у п н о г о п о к о л і н н я Р6), а т а к о ж її п о с л і д о в н и к і в - к о н к у р е н т і в ( A M D
R5, C y r i x M l , NexGen Nx586 та ін.) ш и р о к о в и к о р и с т о в у ю т ь с я ідеї, реалізовані в архітек­
т у р а х К С С К , так що багато в і д м і н н о с т е й м і ж К С С К і К П С К с т и р а ю т ь с я .

3.7.3. Особливості архітектури комп'ютера з простою системою команд


Відомі ще з п о ч а т к у 80-х р о к і в п р и н ц и п и реалізації К П С К є н а с т у п н и м и :
• Довільна к о м п ' ю т е р н а к о м а н д а , н е з а л е ж н о від її типу, м а є в и к о н у в а т и с я за один
т а к т (чи о д н о т а к т о в и й ц и к л ) .
125

• Система к о м а н д має містити м і н і м а л ь н у кількість с п р о щ е н и х к о м а н д , що статис­


тично п е р е в а ж а ю т ь у п р о г р а м а х
• Команди о б р о б к и д а н и х р е а л і з у ю т ь с я л и ш е у ф о р м і «регістр регістр». О б м і н и з
пам'яттю д а н и х (гарвардська а р х і т е к т у р а ) , з м е т о ю м о д и ф і к а ц і ї з м і н н и х у п а м ' я т і в и к о ­
нуються л и ш е за д о п о м о г о ю к о м а н д ч и т а н н я / з а п и с у (архітектура ІоааУзгоге).
• Програми, що модифікують власні коди (раніше це було р о з п о в с ю д ж е н о у різних
комп'ютерах, зокрема РОР-11/УАХ-11) є з а б о р о н е н и м и . Виходить, що згідно з новою кон­
цепцією команди о б р о б к и не м о ж у т ь адресувати нічого, за винятком регістрів процесора
• Д е ш и ф р у в а н н я к о м а н д із с п р о щ е н и м и ф о р м а т а м и м а є в и к о н у в а т и с я л и ш е апарат­
но, аби з б і л ь ш и т и ш в и д к о д і ю
• У системі к о м а н д в і д н о с н о н е б а г а т о о п е р а ц і й та р е ж и м і в а д р е с у в а н н я о п е р а н д і в
(способів адресації).
• Високий рівень к о н в е є р и з а ц і ї в и к о н а н н я к о м а н д
• Велика кількість регістрів
• Застосовується багато рівнів ієрархії п а м ' я т і
• Склад системи к о м а н д м а є з а д о в о л ь н я т и в и м о г и «зручної» к о м п і л я ц і ї операторів
мов високого р і в н я
Виходячи з наведених в и щ е п р и н ц и п і в , м о ж н а п р и й т и до висновку, що п р о е к т у в а н ­
н я К П С К вимагає в и р і ш е н н я н а с т у п н и х з а в д а н ь
• Аналіз області використання з метою визначення н а й п о ш и р е н і ш и х операцій та ф о р ­
мування на основі цього списку команд (наприклад, о б р о б к и сигналів або створення до­
кумента).
• О п т и м і з а ц і я с т р у к т у р и п р о ц е с о р а , що п р о е к т у є т ь с я , з метою з а б е з п е ч е н н я н а й ­
швидшого виконання обраних команд
• Додавання до отриманого списку інших команд, я к щ о вони не ускладнюють
процесора
• Застосування цих же п р и н ц и п і в у розробленні інших пристроїв комп ютерної
системи.
• П е р е н е с е н н я більшої ч а с т и н и дій з а п а р а т у р и на п р о г р а м н у ч а с т и н у ( к о м п і л я т о р ) .
Потрібно відзначити, що з ч а с о м т л у м а ч е н н я о к р е м и х п р и н ц и п і в з м і н и л о с я . Н а п р и ­
клад, вимогу в и к о н а н н я к о м а н д и за один т а к т почали р о з у м і т и в той спосіб, що р е з у л ь ­
тати усіх операцій м а ю т ь ф о р м у в а т и с я з т е м п о м «одне слово за такт». І н ш и м и слова­
ми, усі п р о ц е с о р и о б о в я з к о в о містять к о н в е є р и з о в а н і а р и ф м е т и ч н і пристрої. Сучасні
технології елементної бази д о з в о л и л и р е а л і з у в а т и замість первісних десятків к о м а н д
більше сотні (до 150-200). П р о т е о с н о в н и й п р и н ц и п а р х і т е к т у р и К П С К в и к о н у в а т и
операції тільки у межах регістрової с т р у к т у р и п р о ц е с о р а , аби в и к л ю ч и т и з в е р т а н н я до
пам'яті даних, з а л и ш и в с я н е з м і н н и м

3.7.4. Архітектура комп'ютера з доповненою системою команд


О с н о в н о ю в и м о г о ю до К Д С К є з а б е з п е ч е н н я високої п р о д у к т и в н о с т і п р и реалізації
алгоритмів з в е л и к и м обсягом о б ч и с л е н ь в р е а л ь н о м у м а с ш т а б і часу. В К Д С К ця в и м о г а
задовольняється завдяки використанню таких основних принципів:
розділенню ш и н даних і к о м а н д із з а б е з п е ч е н н я м і н ф о р м а ц і й н о г о о б м і н у м і ж
н и м и , тобто в и к о р и с т а н н ю гарвардської архітектури;
- ш и р о к о м у в и к о р и с т а н н ю к о н в е є р н о г о п р и н ц и п у о б р о б к и даних;
126

- в и к о р и с т а н н ю , крім т р а д и ц і й н о г о А Л П , спеціалізованого о п е р а ц і й н о г о пристрою,


я к и й с т р у к т у р н о о р і є н т о в а н и й н а в и к о н а н н я н а й у ж и в а н і ш и х операцій
- в и к о р и с т а н н ю ш и р о к о р о з р я д н и х блоків о п е р а т и в н о ї та постійної пам'яті великої
ємності з м о ж л и в і с т ю її с е к ц і ю в а н н я із з а б е з п е ч е н н я м н е з а л е ж н о г о д о с т у п у до секцій;
- в и к о р и с т а н н ю в з а м і н а д р е с н о г о регістра спеціального п р о ц е с о р а ф о р м у в а н н я
адрес та й о г о с т р у к т у р н і й орієнтації на р о б о т у з м а с и в а м и даних та на в и к о н у в а н і алго­
р и т м и адресації п а м ' я т і
- в в е д е н н ю в п р и с т р о ї в и б і р к и к о м а н д стеків індексних регістрів, регістрів загально­
го п р и з н а ч е н н я , регістрів п о п е р е д н ь о ї в и б і р к и та і н ш и х а п а р а т н и х засобів для маніпу­
ляцій з командами і даними;
- в в е д е н н ю в систему к о м а н д с п е ц і а л ь н и х к о м а н д для в и к о н а н н я н а й у ж и в а н і ш и х
алгоритмів;
- в и к о р и с т а н н ю ш в и д к о д і ю ч и х п о с л і д о в н и х і п а р а л е л ь н и х інтерфейсів, які забезпе­
ч у ю т ь с т в о р е н н я б а г а т о п р о ц е с о р н и х систем
- короткому командному циклу
Дані п р и н ц и п и , п о к л а д е н і в основу п р о е к т у в а н н я КДСК, з а б е з п е ч у ю т ь їм високі тех­
нічні п а р а м е т р и , з а в д я к и я к и м К Д С К о б р о б л я ю т ь великі м а с и в и і н ф о р м а ц і ї з а складни­
ми а л г о р и т м а м и і в и к о н у ю т ь більшість о п е р а ц і й за один к о м а н д н и й ц и к л
Т и п о в а с т р у к т у р а к о м п ' ю т е р а з д о п о в н е н о ю системою к о м а н д наведена на рис. 3.44.
Видно, що т у т в и к о р и с т о в у є т ь с я гарвардська архітектура, яка передбачає розподіл
п а м яті на п а м я т ь д а н и х і п а м я т ь п р о г р а м , що дає змогу суміщати в часі вибірку і вико­
н а н н я к о м а н д . Такий р о з п о д і л ш и н дає змогу с т в о р и т и к о н в е є р в и к о н а н н я к о м а н д і під­
в и щ и т и п р о д у к т и в н і с т ь КДСК. В багатьох к о м п ' ю т е р а х з д о п о в н е н о ю системою команд,
з о к р е м а сім'ї ТМБ320, в и к о р и с т о в у є т ь с я м о д и ф і к о в а н а гарвардська архітектура, яка до­
пускає обмін і н ф о р м а ц і є ю м і ж п а м ' я т т ю д а н и х і п а м я т т ю к о м а н д с т в о р е н н я м зв'язку
м і ж ш и н о ю д а н и х і ш и н о ю к о м а н д (міст з в ' я з к у ш и н на рис. 3.44).

Пристрій Пристрій
Пам'ять команд вибірки команд керування

Шина команд

Міст зв'язку шин

Шина даних

Процесор
Операційний
формування Пам'ять даних
пристрій
адрес

Рис. 3.51. Типова структура комп'ютера з доповненою системою команд

3.7.5. Комп'ютери зі спеціалізованою системою команд


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

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


собів головним ч и н о м п о в ' я з а н е з м о ж л и в і с т ю реалізації с к л а д н и х ф у н к ц і й ц и ф р о в о ї
обробки сигналів у в б у д о в а н и х комп'ютерах. П р и р о з р о б ц і ц и х к о м п ' ю т е р і в с т а в л я т ь ­
ся жорсткі вимоги до їх п р о д у к т и в н о с т і та с п о ж и в а н о ї п о т у ж н о с т і . Крім того, існуючі
економічні умови с т в о р ю ю т ь необхідність с к о р о ч е н н я часу їх в и п у с к у на р и н о к , а т а к о ж
забезпечення м о ж л и в о с т і в н е с е н н я н о в и х ф у н к ц і й . Ц е в и м а г а є н о в о г о , г н у ч к і ш о г о під­
ходу д о п р о е к т у в а н н я , я к и й з а б е з п е ч и в б и в н е с е н н я з м і н н а о с т а н н і й с т а д і ї ц и к л у
проектування.
Одним із т а к и х підходів є с т в о р е н н я к о м п ' ю т е р і в із спеціалізованою ( о р і є н т о в а н о ю )
системою команд ( К О С К , англійський термін - ASISC - application-specific instruction-set
computer). К О С К о р і є н т о в а н і на в и к о р и с т а н н я в с к л а д н и х системах, які р е а л і з у ю т ь с я
у вигляді НВІС. В и к о р и с т а н н я К О С К як к о м п о н е н т и системи на кристалі з а б е з п е ч у є
її програмованість ( б а ж а н у гнучкість п р о ц е с у п р о е к т у в а н н я ) із з б е р е ж е н н я м о с н о в н и х
переваг спеціалізованих архітектур - м о ж л и в о с т і п і д в и щ е н н я п р о д у к т и в н о с т і та з м е н ­
шення с п о ж и в а н о ї п о т у ж н о с т і . Т а к и м ч и н о м , К О С К п о є д н у ю т ь в собі переваги д в о х різ­
них класів архітектур: у н і в е р с а л ь н и х та спеціалізованих. К О С К - це к о м п ' ю т е р и , система
команд я к и х о р і є н т о в а н а на к о н к р е т н е в и к о р и с т а н н я , н а п р и к л а д , коміркові т е л е ф о н и ,
стиск з о б р а ж е н ь і т. д. П о р і в н я н о з К Д С К , К О С К м а ю т ь в и щ и й рівень спеціалізації.
Зазвичай К О С К м а ю т ь м а л и й набір к о м а н д , я к и й в к л ю ч а є :
• набір с т а н д а р т н и х а р и ф м е т и ч н и х команд, к о м а н д и р о б о т и з п а м ' я т т ю та к о м а н д и
керування п р о г р а м н и м потоком, які необхідні для к о н к р е т н о г о в и к о р и с т а н н я ;
• декілька спеціальних команд, н а п р и к л а д , в и к о н а н н я о п е р а ц і й м н о ж е н н я - н а к о п и -
чення даних, ц и ф р о в о ї фільтрації, д е к о д у в а н н я за а л г о р и т м о м Вітербі і т. д.
Таким ч и н о м , к р и т и ч н і за ш в и д к о д і є ю к о м а н д и м о ж у т ь б у т и в и к о н а н і за м і н і м а л ь н у
кількість м а ш и н н и х ц и к л і в ( м о ж л и в о за 1 п р о с т и й ц и к л ) без з б е р і г а н н я у п а м ' я т і п р о ­
міжних результатів.
Охарактеризувати КОСК можна за допомогою шести основних параметрів. Цими
параметрами є: ф о р м а т даних, ф о р м а т к о м а н д , с т р у к т у р а пам'яті, с т р у к т у р а регістрової
пам'яті, к о д у в а н н я о п е р а ц і й , а т а к о ж с т р у к т у р н і о с о б л и в о с т і п р о ц е с о р а . К О С К з а з в и ­
чай орієнтовані на о б р о б к у д а н и х з ф і к с о в а н о ю комою. Р о з р я д н а сітка ф у н к ц і о н а л ь н и х
блоків, ш и н та пам'яті в и б и р а є т ь с я , в и х о д я ч и із п о т р е б задачі. Вони б а з у ю т ь с я на архі­
тектурі типу регістр-регістр. Регістри регістрового ф а й л а п р о ц е с о р а є п р о г р а м н о до­
ступними. В К О С К м о ж у т ь в и к о р и с т о в у в а т и с ь два б а з о в и х т и п и к о д у в а н н я о п е р а ц і й :
м і к р о к о д у в а н н я та м а к р о к о д у в а н н я .
При м і к р о к о д у в а н н і всі к о м а н д и в и к о н у ю т ь с я за один м а ш и н н и й ц и к л . К о ж н а ко­
манда в и б и р а є т ь с я з п а м ' я т і п р о г р а м , в и з н а ч а ю т ь с я всі т р а к т и д а н и х і з в е р т а н н я до
пам'яті, які будуть в и к о н а н і п р о т я г о м даного м а ш и н н о г о циклу. П р и м а к р о к о д у в а н н і
деякі команди м о ж у т ь в и к о н у в а т и с я п р о т я г о м багатьох ц и к л і в . К о ж н а к о м а н д а в и з н а ч а є
всі тракти даних і з в е р т а н н я до пам'яті, які відповідають специфічній т р а н с ф о р м а ц і ї да­
них, навіть я к щ о ці дії м а ю т ь місце в різних м а ш и н н и х циклах. У в и п а д к у м і к р о к о д у в а н ­
ня легше організується к о н в е є р к о м а н д , о с к і л ь к и м а ш и н н и й код доступний програмісту,
а при макрокодуванні ці дії виконує блок керування, тому м о ж л и в а поява ефектів впливу
затримки конвеєра на продуктивність. Цей ефект може бути усунений шляхом введення до­
даткової апаратури яка його передбачає, але відповідно вимагає ускладнення розробки.
728

М о ж л и в і два в а р і а н т и ф о р м а т у к о м а н д - о р т о г о н а л ь н и й та к о д о в а н и й . О р т о г о н а л ь ­
н и й ф о р м а т с к л а д а є т ь с я з ф і к с о в а н и х н е з а л е ж н и х к е р у ю ч и х полів. У в и п а д к у кодовано­
го ф о р м а т у і н т е р п р е т а ц і я бітів к о м а н д и як к е р у ю ч и х полів з а л е ж и т ь від з н а ч е н н я бітів
формату. У в и п а д к у о р т о г о н а л ь н о г о ф о р м а т у к о м а н д и р о з р я д и всередині керуючого
п о л я м о ж у т ь б у т и т а к о ж з а к о д о в а н і для з м е н ш е н н я його р о з р я д н о с т і .
З а з в и ч а й K O C K м а ю т ь 16- або 3 2 - р о з р я д н и й к о д о в а н и й ф о р м а т к о м а н д и . П р и к л а д ­
на п р о г р а м а р о з м і щ у є т ь с я в п а м ' я т і кристала. Ф о р м а т к о м а н д и в и б и р а ю т ь у з г о д ж е н и м з
р о з м і р о м п а р а л е л ь н о г о п о р т у д а н и х т а с т а н д а р т н и х блоків пам'яті, які в и к о р и с т о в у ю т ь ­
с я для з б е р і г а н н я п р и к л а д н о ї п р о г р а м и .
K O C K м а ю т ь е ф е к т и в н у с т р у к т у р у о с н о в н о ї т а регістрової пам'яті, які забезпечу­
ють в и с о к у ш в и д к і с т ь о б м і н у м і ж р і з н и м и б л о к а м и т р а к т у д а н и х і м і ж т р а к т о м даних
та п а м ' я т т ю . Такі к о м п ' ю т е р и м а ю т ь один а б о два блоки п а м ' я т і даних. Для з б і л ь ш е н н я
п р о д у к т и в н о с т і р о б о т и т а к и х к о м п ' ю т е р і в п р и ї х побудові в и к о р и с т о в у є т ь с я гарвард­
ська а р х і т е к т у р а ( р о з д і л е н н я п а м ' я т і д а н и х та п а м ' я т і п р о г р а м ) .
Більшість K O C K використовують гетерогенну структуру регістрової пам'яті, що
дозволяє зменшити кількість розрядів команди, збільшуючи швидкість обміну даними.
Ц е о з н а ч а є , щ о с п е ц і а л ь н о о р г а н і з о в а н і р е г і с т р и т а р е г і с т р о в і ф а й л и п р я м о під'єднані
д о с п е ц і а л ь н и х п о р т і в ф у н к ц і о н а л ь н и х блоків. Ф у н к ц і о н а л ь н і б л о к и м о ж у т ь в и б и р а ­
ти операнди або записувати результати тільки в конкретні регістри. Між елементами
к о м п ' ю т е р а є т і л ь к и ті з в ' я з к и , я к і є к о р и с н и м и д л я е ф е к т и в н о ї р е а л і з а ц і ї з а д а н о г о
алгоритму.
А р х і т е к т у р а K O C K з а з в и ч а й м а є р я д о с о б л и в о с т е й , які відділяють ї ї від і н ш и х архі­
т е к т у р і не були в і д о б р а ж е н і в п о п е р е д н і х розділах. Далі наведено перелік особливостей
існуючих K O C K :
• Я к з а з н а ч а л о с ь в и щ е , система к о м а н д K O C K в к л ю ч а є спеціалізовані команди, які
д о з в о л я ю т ь в и к о н у в а т и к р и т и ч н і д і л я н к и з а д а н и х а л г о р и т м і в з а м і н і м а л ь н у кількість
м а ш и н н и х ц и к л і в та без з а с и л а н н я в п а м ' я т ь п р о м і ж н и х результатів. С т р у к т у р а трактів
д а н и х т а к и х п р о ц е с о р і в с п е ц і а л ь н о п р о е к т у є т ь с я д л я к о н к р е т н и х алгоритмів.
• П а м ' я т ь д а н и х з а з в и ч а й п р а ц ю є з о д н и м або д в о м а п р о ц е с о р а м и ф о р м у в а н н я
адрес, які п і д т р и м у ю т ь б е з п о с е р е д н і й , п р я м и й та н е п р я м и й с п о с о б и адресації. Також
п і д т р и м у ю т ь с я спеціальні адресні операції, такі як о б ч и с л е н н я модуля п р и реалізації
ц и р к у л я р н и х буферів п р и в и к о н а н н і фільтрації та підрахунок з і н в е р с н и м р о з п о в с ю ­
д ж е н н я м п е р е н о с у п р и в и к о н а н н і ш в и д к о г о п е р е т в о р е н н я Фур'є.
• K O C K о б р о б к и м о в н и х , відео- та аудіосигналів часто в к л ю ч а ю т ь блоки бітових
м а н і п у л я ц і й . Б і л ь ш е того, ці к о м п ' ю т е р и п і д т р и м у ю т ь кілька типів даних з фіксованою
к о м о ю ( н а п р и к л а д : 2 р і з н и х т и п и 1 6 - р о з р я д н и х д а н и х двох д о п о в н я л ь н и х кодів з різною
і н т е р п р е т а ц і є ю б і н а р н и х значень, 3 2 - р о з р я д н и й т и п д в о х д о п о в н я л ь н и х кодів у акуму­
л я т о р і та т и п 8 - р о з р я д н о г о цілого в п р о ц е с о р а х ф о р м у в а н н я адрес). П е р е т в о р е н н я ти­
пів д а н и х п і д т р и м у ю т ь с я а п а р а т у р о ю т р а к т у даних.
• Більшість K O C K п і д т р и м у ю т ь с т а н д а р т н і к о м а н д и к е р у в а н н я , такі я к умовні р о з ­
г а л у ж е н н я , що б а з у ю т ь с я на з н а ч е н н я х р о з р я д і в в регістрі кодів умов. П р и ц ь о м у в них
в р а х о в а н о м о ж л и в о с т і п о я в и з а т р и м о к п р и в и к о н а н н і о п е р а ц і й переходу, які пов'яза­
ні з н а я в н і с т ю к о н в е є р а , р е а л і з о в а н о м о ж л и в і с т ь в и к о н а н н я а р и ф м е т и ч н и х команд та
к о м а н д п е р е с и л а н н я п р и н а я в н о с т і певної у м о в и , щ о д о з в о л я є реалізувати умовні ал-
729

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


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

3.8. Короткий зміст розділу


В даному розділі були р о з г л я н у т і о с н о в н і елементи а р х і т е к т у р и к о м п ' ю т е р а , які
включають організацію п а м яті, ф о р м а т и і т и п и к о м а н д , с п о с о б и адресації. П о к а з а н о , як
кодуються та в и к о н у ю т ь с я к о м а н д и в к о м п ' ю т е р і . П р о в е д е н а к л а с и ф і к а ц і я к о м а н д від­
повідно до ініційованих н и м и типів о п е р а ц і й та д е т а л ь н о р о з г л я н у т і к о м а н д и о б р о б к и
даних, п е р е м і щ е н н я даних, передачі к е р у в а н н я , в в е д е н н я в и в е д е н н я . Багато р і ш е н ь м а є
бути п р и й н я т о , коли п р о е к т у є т ь с я система к о м а н д . Н а я в н і с т ь значної кількості к о м а н д
в системі к о м а н д к о м п ' ю т е р а п р и з в о д и т ь до з б і л ь ш е н н я д о в ж и н и к о м а н д и , до з б і л ь ш е н ­
ня часу вибірки та д е к о д у в а н н я . К о м а н д и фіксованої д о в ж и н и легше декодувати, але
втрачається гнучкість. Реалізація о д н и х к о м а н д на основі і н ш и х є к о м п р о м і с о м м і ж п о ­
требою у великих системах к о м а н д і б а ж а н н і мати короткі к о м а н д и
Конвеєризація виконання команд о д и н із п р и к л а д і в п а р а л е л і з м у на рівні к о м а н ­
ди. Це загальна але складна технологія, я к а м о ж е п і д в и щ и т и п р о д у к т и в н і с т ь в и к о н а н н я
послідовності к о м а н д . П р о т е рівень п а р а л е л і з м у м о ж е б у т и о б м е ж е н и й к о н ф л і к т а м и в
конвеєрі
Є три т и п и архітектур к о м п ' ю т е р а за т и п о м а д р е с о в а н о ї п а м ' я т і : стекова, а к у м у л я ­
торна, та на основі регістрів з а г а л ь н о г о п р и з н а ч е н н я . К о ж н а м а є свої переваги і недолі­
ки, які п о т р і б н о р о з г л я д а т и в контексті з а с т о с у в а н н я з а п р о п о н о в а н о ї а р х і т е к т у р и
Д о с я г н е н н я в технології п а м ' я т і , п р и в і в ш и до в е л и к и х її є м н о с т е й , в и к л и к а л и п о ­
требу в а л ь т е р н а т и в н и х способах адресації. Були введені різні с п о с о б и адресації, включа­
ючи безпосередню, пряму, непряму, базову, індексну, сторінкову і стекову. Н а я в н і с т ь ц и х
різних способів з а б е з п е ч у є гнучкість і з р у ч н і с т ь для п р о г р а м і с т а без з а м і н и ф у н д а м е н ­
тальних операцій п р о ц е с о р а
Розгляд архітектури к о м п ' ю т е р а на рівні системи к о м а н д в с т а н о в л ю є м е ж у м і ж апа­
ратурою та п р о г р а м н и м з а б е з п е ч е н н я м і д о з в о л я є п о б а ч и т и к о м п ' ю т е р на рівні, я к и й
в и д и м и й програмісту, що п р а ц ю є на мові асемблера, або р о з р о б н и к у к о м п і л я т о р і в . За
складом системи к о м а н д к о м п ' ю т е р и м о ж у т ь б у т и поділені на наступні т и п и : к о м п ' ю т е ­
ри із складною, з п р о с т о ю , з д о п о в н е н о ю та с п е ц і а л і з о в а н о ю с и с т е м о ю команд. В розділі
ці архітектури р о з г л я н у т і д е т а л ь н о

3.9. Література для подальшого читання


Класифікація різних типів п а м ' я т і з а л е ж н о від способу д о с т у п у до д а н и х наведена
в [5]. В р о б о т і [6] було з а п р о п о н о в а н о н о в и й т и п пам'яті, я к а за с п о с о б о м д о с т у п у до
даних н а л е ж и т ь до п а м ' я т і з в п о р я д к о в а н и м д о с т у п о м . П р и н ц и п и п о б у д о в и та р о б о ­
ти пам яті з д о в і л ь н и м д о с т у п о м д е т а л ь н о р о з г л я н у т і в літературі [8, 9]. Асоціативна
пам'ять описана в [1].
Порядок в и к о н а н н я к о м а н д та ф о р м а т к о м а н д и описані в р о б о т а х [2, 3]. Системи ко­
манд, адресація та ф о р м а т и к о м а н д и р о з к р и т і д е т а л ь н о в м а й ж е кожній книзі, я к а стосу­
ється архітектури комп'ютерної системи. Книги [21,22] н а й п о в н і ш е охоплюють ці п и т а н -
9 3ам. 371.
130

ня. Багато книг, як н а п р и к л а д [10, 11, 15, 18], присвячені архітектурі процесора х86 фірми
Intel. Для тих, хто з а ц і к а в л е н и й у в и в ч е н н і серії 68000, п р о п о н у є т ь с я література [20, 31].
Н а л е ж н е о б г о в о р е н н я к о н в е є р н о ї о б р о б к и к о м а н д надає [24]. В [16] подано цікавий
к о р о т к и й огляд к о н ф л і к т і в у конвеєрі. Історія к о н в е є р н о ї о б р о б к и р о з к р и т а в [23]. Щоб
о д е р ж а т и з н а н н я о б м е ж е н ь і п р о б л е м з к о н в е є р н о ю о б р о б к о ю , в а р т о п р о ч и т а т и [ЗО].
П о д и в і т ь с я [11] д л я д о в е р ш е н о г о і з р у ч н о г о в в е д е н н я в сім'ю процесорів Intel. В [14]
з р о б л е н о о п и с б е з а д р е с н о ї м а ш и н и ф і р м и Burroughs. [28] дає д о с т а т н є уявлення п р о се­
рію I B M 360. В [12] н а в е д е н о д е т а л і п р о систему V A X , в якій о б ' є д н а н а двоадресна архі­
т е к т у р а з в і д п р а ц ь о в а н о ю с и с т е м о ю к о м а н д . В [25] н а д а н о к о р о т к и й огляд архітектури
S P A R C . В [19] з р о б л е н о ц і к а в и й огляд в і р т у а л ь н о ї м а ш и н и Java.
П о р і в н я н н я архітектур комп'ютерів із складною та спрощеною системою команд зробле­
но в [21, 22]. Тут же з а п р о п о н о в а н о архітектуру комп'ютера із спрощеною системою команд
D L X . Архітектура комп'ютерів з доповненою системою команд розглянута в [4].

3. ТО. Література до розділу З


1. Искусственный интеллект: В 3-х книгах. Кн. 3. Программные и аппаратные средства: Спра­
вочник/ Под ред. В. Н. Захарова, В Ф. Хорошевского. - М.: Радио и связь, 1990. - 191 с
2. Каган Б М. Электронные вычислительные машины и системы. - М.: Энергия, 1979. - 528 с
3. Каган Б М., Каневский М М. Цифровые вычислительные машины и системы М.: Энергия,
1974. - 680 с
4. Мельник А О. Програмовані процесори обробки сигналів. - Львів: Вид-тво Національного
університету "Львівська політехніка", 2000. 55 с
5. Угрюмов Е П. Цифровая схемотехника. - СПб.: БХВ - Санкт Петерберг, 2000. - 528 с
6. Мельник А О. Принципи побудови буферної сортувальної пам'яті. Вісник Державного уні­
верситету "Львівська політехніка". - "Комп'ютерна інженерія та інформаційні технології", № 307,
1 9 9 6 . - С . 65-71.
7. Справочник по цифровой вычислительной технике. Б Н Малиновский и др - К.: Техніка,
1980. - 320 с
8. Шигин А Г., Дерюгин А А. Цифровые вычислительные машины (память ЦВМ). - М.: Энер­
гия, 1975. - 536 с
9. Метлицький Б А., Каверзнев В В. Системы параллельной памяти. Теория, проектирование,
применение. Под. ред. В И. Тихонова. - Л., 1989.
10. Abel, Peter. IBM PC Assembly Language and Programming, 5th ed., Upper Saddle River, NJ: Pre­
ntice Hall, 2001.
11. Brey, B. Intel Microprocessors 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium, and Pent­
ium Pro Processor, Pentium II, Pentium III, and Pentium IV: Architecture, Programming, and Interfacing,
6th ed., Englewood Cliffs, NJ: Prentice Hall, 2003.
12. Brunner, R.A. VAX Architecture Reference Manual, 2nd ed., Herndon, VA: Digital Press, 1991.
13. Burks, Alice, 8c Burks, Arthur. Иге First Electronic Computer: The Atanasoff Story. Ann Arbor, MI:
University of Michigan Press, 1988.
14. Hauck, E. A., 8c Dent, B. A. "Burroughs B6500/B7500 Stack Mechanism", Proceedings ofAFIPS
SJCC (1968), Vol. 32, pp. 245-251.
15. Jones, William. Assembly Language Programming for the IBM PC Family, 3rd ed., El Granada, CA:
Scott/Jones Publishing, 2001.
16. Kaeli, D., 8c Emma, P. "Branch History Table Prediction of Moving Target Branches Due to Subrouti­
ne Returns". Proceedings of the 18th Annual International Symposium on Computer Architecture, May 1991.
131

17. Lindholm, Tim, & Yellin, Frank. The Java Virtual Machine Specification. Online atjava.sun.com/
docs/books/vmspec/html/VMSpecTOC.cod.html.
18. Messmer, H. The Indispensable PC Hardware Book. Reading, M A : Addison-Wesley, 1993.
19. Meyer, J., & Downing, T. Java Virtual Machine. Sebastopol, C A : O'Reilly & Associates, 1991.
20. Miller, M. A. The 6800 Family, Architecture Programming and Applications, 2nd ed., Columbus,
OH: Charles E. Merrill, 1992.
21. D. Patterson, J. Hennessy. Computer Architecture. A Quantitative Approach. Morgan Kaufmann
Publishers, Inc. 1996.
22. Patterson, D. A., & Hennessy, J. L. Computer Organization and Design, Tlie Hardware/Software
Interface, 2nd ed , San Mateo, C A : Morgan Kaufmann, 1997.
23. Rau, B. Ramakrishna, & Fisher, Joseph A. "Instruction-Level Parallel Processing: History, Over­
view and Perspective". Journal of Supercomputing 7 (1), Jan. 1993, pp. 9-50.
24. Sohi, G. "Instruction Issue Logic for High-Performance Interruptible, Multiple Functional Unit,
Pipelined Computers". IEEE Transactions on Computers, March 1990.
25. SPARC International, Inc., The SPARC Architecture Manual: Version 9, Upper Saddle River, NJ:
Prentice Hall, 1994.
26. Stallings, W. Computer Organization and Architecture, 5th ed., New York, NY: Macmillan Publi­
shing Company, 2000.
27. Stern, Nancy. From ENIAC to UNIVAC: An Appraisal of the Eckert-Mauchly Computers. Herndon,
VA: Digital Press, 1981.
28. Struble, G. W. Assembler Language Programming: The IBM System/360 and 370,2nd ed., Reading,
M A : Addison-Wesley, 1975.
29. Tanenbaum, Andrew. Structured Computer Organization, 4th ed., Upper Saddle River, NJ: Pren­
tice Hall, 1999.
30. Wall, David W. Limits of Instruction-Level Parallelism. D E C - W R L Research Report 93/6, Nov.
1993.
31. Wray, W. C, 8c Greenfield, J. D. Using Microprocessors and Microcomputers, the Motorola Family.
Englewood Cliffs, NJ: Prentice Hall, 1994.

3.11. Питання до розділу З


1. Як організовується зв язок між процесором і основною пам яттю?
2. Який порядок виконання команд в комп ютері?
3. Як кодуються команди в комп ютері?
4. Що таке асемблерна мова і для чого використовується асемблер?
5. Як класифікуються команди за типами операцій?
6. Назвіть команди обробки даних
7. Назвіть базові операції зсуву
8. Назвіть команди переміщення даних
9. Поясніть принципи організації послідовного виконання команд і розгалуження
10. Назвіть команди передачі керування
11. Назвіть команди переходу
12. Назвіть команди пропуску
13. Назвіть команди звертання до підпрограм
14. Поясніть принципи конвеєрного виконання команд
15. Якою є продуктивність 4-ярусного конвеєра з тактом 20 не при виконанні 100 команд?
16. Назвіть можливі конфлікти, які можуть сповільнити конвеєр
17. Які використовуються формати команд при роботі з основною пам яттю?
18. Які формати команд використовуються при роботі з регістрами процесора?
132

19. Які головні критерії вибору формату команд?


20. Поясніть різницю між акумуляторною архітектурою, стековою архітектурою та архітек­
турою на основі регістрів загального призначення
21. Поясніть різницю між архітектурами системи команд типу регістр регістр, регістр
пам'ять і пам'ять пам'ять
22. Які переваги та недоліки команд з фіксованим та зі змінним форматом? Який формат є
вживанішим в сучасних комп'ютерах і чому?
23. Яким чином знаходяться дані в пам'яті коли в команді відсутня адресна частина?
24. Яка програма має більше команд: та, що складається з безадресних команд, одноадресних
команд, чи з двоадресних команд? Чому?
25. Що таке спосіб адресації?
26. Які є способи адресації пам'яті? їх призначення?
27. Як організовується стекова пам ять?
28. Поясніть порядок організації обчислень при використанні стекової адресації
29. Наведіть приклади використання інфіксної, префіксної та постфіксної форм запису ариф­
метичних виразів
30. Наведіть приклади безпосередньої, прямої, непрямої, відносної та базової адресацій
31. Чим відрізняється індексна адресація від базової?
32. Чому необхідна велика кількість різних способів адресації?
33. Які формати команд використовуються в системі IBM 370? їх відмінності
34. Які формати команд використовуються в машині Cyber-70?
35. Які формати команд використовуються в комп'ютері DLX?
36. Дайте класифікацію архітектур комп'ютера за складом системи команд
37. Яка різниця між комп'ютерами із складною та простою системами команд?
38. Які особливості має комп'ютер з доповненою системою команд?
39. Які переваги має комп'ютер з орієнтованою системою команд?
Розділ 4

ТГрацесар ушЯерамшіаш ктш'ютєрси


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

4. 1. Процесор комп'ютера із складною системою команд

4.1.1. Одношинна структура процесора


П о ч н е м о р о з г л я д п р о ц е с о р а з аналізу й о г о с т р у к т у р и та організації р о б о т и . Однією з
найпростіших структур процесора є одношинна структура. Одношинну структуру про­
цесора і його з в ' я з к и з і н ш и м и п р и с т р о я м и к о м п ' ю т е р а п о к а з а н о на рис. 4.1. Як бачимо,
до складу процесора входять пристрій керування, арифметико-логічний пристрій А Л П з
вхідним РгУ та вихідним Р г 2 регістрами, і регістрова пам'ять, до складу якої входять регістр
команд РгК, регістр даних РгД, регістр адреси РгА, програмний лічильник ПЛ, та регістро-
134

вий файл - стек програмно доступних регістрів РгО, Ргі... Рг(п-І). Обмін інформацією між
названими пристроями здійснюється через спільну внутрішню шину процесора. Зв'язок
процесора з основною пам'яттю проводиться через регістри адрес РгА та даних РгД.

Пристрій
керування Внутрішня шина
процесора

РгК

ПЛ

ЛІНІЇ
адреси
РгА

шина
лінії
пам'яті
даних
РгД

РгО

Рг (п - 1)

РгУ

. ... f Add ^
ЛІНИ / >
керування! Sub
АЛП
АЛП ^ , .*

PrZ
Рис. 4.1. Однотипна структура процесора

РгА зберігає адресу д а н о г о або к о м а н д и при з в е р н е н н і до основної пам'яті. РгК збе­


рігає к о м а н д у після її з ч и т у в а н н я з о с н о в н о ї пам'яті. РгД зберігає о п е р а н д при його за­
п и с у або з ч и т у в а н н і з о с н о в н о ї пам'яті. ПЛ - п р о г р а м н и й л і ч и л ь н и к , я к и й підраховує
к о м а н д и та зберігає а д р е с у п о т о ч н о ї к о м а н д и .
Регістри з а г а л ь н о г о п р и з н а ч е н н я Р г - Р г . р е г і с т р о в о г о ф а й л а є п р о г р а м н о д о с т у п ­
0 (п (

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


дексних регістрів п р и в и к о н а н н і о п е р а ц і й модифікації адрес або в якості регістрів для
з б е р і г а н н я п р о м і ж н и х результатів обчислень. Більшість комп'ютерів м а ю т ь в складі п р о ­
цесора т р и г е р и для з б е р і г а н н я бітів стану п р о ц е с о р а , або як їх ще н а з и в а ю т ь , п р а п о р ц і в .
Кожен п р а п о р е ц ь м а є спеціальне п р и з н а ч е н н я . Ч а с т и н а п р а п о р ц і в вказує на результати
а р и ф м е т и ч н и х і л о г і ч н и х о п е р а ц і й : додатній результат (Р), в і д ' є м н и й результат (І\ ), ну­ т

л ь о в и й результат (Х), п е р е н о с (С), а р и ф м е т и ч н е п е р е п о в н е н н я (V) т о щ о .


Різні к о м а н д и в к а з у ю т ь процесору, коли в с т а н о в и т и чи о ч и с т и т и ці тригери. Інша
ч а с т и н а п р а п о р ц і в в к а з у є р е ж и м и з а х и с т у пам'яті. Існують т а к о ж п р а п о р ц і , які вказу­
ють п р і о р и т е т и в и к о н у в а н и х п р о г р а м . В д е я к и х п р о ц е с о р а х додаткові тригери слугують
для з б е р і г а н н я кодів у м о в , ф о р м у ю ч и регістр кодів у м о в . Взяті р а з о м описані прапорці
ф о р м у ю т ь слово с т а н у п р о г р а м и ( С С П ) , а відповідні т р и г е р и - регістр С С П .
135

4.1.2. Основні операції процесора


Можна виділити дві ф а з и в и к о н а н н я к о м а н д и в п р о ц е с о р і : ф а з а вибірки та ф а з а в и ­
конання. Фаза вибірки передбачає в и б і р к у вмісту к о м і р к и о с н о в н о ї п а м ' я т і , в якій збе­
рігається команда, за з н а ч е н н я м п р о г р а м н о г о л і ч и л ь н и к а ПЛ і з а с и л а н н я к о м а н д и в РгК
(РгК := [[ПЛ]]), а т а к о ж п р и р о щ е н н я ПЛ на о д и н и ц ю : [ПЛ] := [ПЛ] + 1. Ф а з а в и к о н а н н я
команди передбачає її д е ш и ф р у в а н н я та виконання операцій, вказаних в коді операції ко­
манди. Для того, щ о б п о б а ч и т и , як о б и д в і ф а з и в и к о н у ю т ь с я в процесорі, р о з г л я н е м о
його основні операції, до в и к о н а н н я я к и х задіяні представлені на рис. 4.1 елементи.

4.1.2.1. Вибірка слова з пам'яті

Нехай адреса к о м і р к и о с н о в н о ї п а м ' я т і з н а х о д и т ь с я в регістрі Р г і , а дані п о т р і б н о


розмістити в регістрі Рг2.
Для вибірки із основної пам'яті необхідно виконати наступну послідовність операцій:
1. РгА := Р г і (запис до регістра адреси РгА в м і с т у регістра Р г і ) .
2. З ч и т у в а н н я ( в и к о н а н н я операції з ч и т у в а н н я к о м а н д и з к о м і р к и о с н о в н о ї п а м ' я т і
до регістра РгД ш л я х о м п о д а н н я сигналу Read на вхід к е р у в а н н я р е ж и м о м р о б о т и о с н о в ­
ної пам'яті та сигналу з а п и с у до регістра РгД).
3. Ч е к а н н я на сигнал п і д т в е р д ж е н н я з ч и т у в а н н я .
4. Рг2 := РгД (запис до регістра Рг2 д а н о г о з регістра РгД).
Пункт 3 в и к о н у є т ь с я при а с и н х р о н н о м у п р и н ц и п і о б м і н у м і ж п р о ц е с о р о м і о с н о в ­
ною пам'яттю, коли п о т р і б н о чекати на сигнал п і д т в е р д ж е н н я з ч и т у в а н н я . П р и с и н ­
хронному п р и н ц и п і о б м і н у чекати н а сигнал п і д т в е р д ж е н н я з ч и т у в а н н я н е п о т р і б н о ,
оскільки до п о д а н н я сигналу з а п и с у в регістр РгД передбачається г а р а н т о в а н а н а я в н і с т ь
даного на його вході.

4.1.2.2. Запам'ятовування слова в пам'яті

Нехай слово, яке з а п а м ' я т о в у є т ь с я в о с н о в н і й п а м ' я т і , з н а х о д и т ь с я в регістрі Рг2, а


адреса - в регістрі Р г і . Тоді послідовність о п е р а ц і й буде н а с т у п н о ю :
1. РгА := Р г і (запис до регістра а д р е с и РгА в м і с т у регістра Р г і ) .
2. РгД := Рг2 (запис до регістра д а н и х РгД вмісту регістра Рг2), з а п и с ( в и к о н а н н я опе­
рації запису слова з регістра РгД до к о м і р к и о с н о в н о ї п а м ' я т і ш л я х о м п о д а н н я с и г н а л у
Write на вхід к е р у в а н н я р е ж и м о м р о б о т и о с н о в н о ї п а м ' я т і ) .
3. Ч е к а н н я на сигнал п і д т в е р д ж е н н я з а п и с у (при а с и н х р о н н о м у п р и н ц и п і о б м і н у
між п р о ц е с о р а м і о с н о в н о ю п а м ' я т т ю ) .

4.1.2.3. Обмін даними між регістрами

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


на рис. 4.2 у вигляді ключів, які п р о п у с к а ю т ь або не п р о п у с к а ю т ь і н ф о р м а ц і ю з входу
на вихід, з а л е ж н о від з н а ч е н н я сигналів к е р у в а н н я на їх входах. Тут сигнал к е р у в а н н я
входом і-го регістра Ргі п о з н а ч е н о як Ргі in, а сигнал к е р у в а н н я в и х о д о м і-го регістра Ргі
позначено як Ргі out. В к о н к р е т н і й схемі регістра це м о ж у т ь бути, н а п р и к л а д , вхід з а п и с у
числа до регістра та його т р и с т а б і л ь н и й вихід.
136

Pr(i-l)in

P:(i-l)out

Рис. 4.2. Фрагмент схеми процесора з вхідними та вихідними елементами регістрів

Подання 1 на вхід керування регістра Priout з'єднує вихід регістра Ргі з шиною, а подання
1 на вхід керування регістра Ргііп записує число з ш и н и в регістр Ргі. Подаючи на регістри
вказані сигнали, м о ж н а переписувати числа з одного регістра в інший наприклад, для пере­
запису числа із регістра РгЗ до регістра Рг5 необхідно подати наступні сигнали: РгЗош, Рг5іп.

4.1.2.4. Виконання арифметичних і логічних операцій

А р и ф м е т и к о - л о г і ч н и й п р и с т р і й ( А Л П ) п р о ц е с о р а п р и з н а ч е н и й д л я в и к о н а н н я опе­
рацій о б р о б к и даних. Тип в и к о н у в а н о ї о п е р а ц і ї в к а з у є т ь с я кодом на вході керування
А Л П . В А Л П , з о к р е м а , в и к о н у ю т ь с я такі операції: з с у в - з м і щ е н н я кодів, які зберігають­
ся в регістрах р е г і с т р о в о г о файлу, в л і в о а б о в п р а в о на з а д а н е ч и с л о р о з р я д і в ; додавання
до слова 1 або -1 - о п е р а ц і я р а х у н к у ; д е ш и ф р у в а н н я - п е р е т в о р е н н я двійкових кодів у
сигнали ( о д н о р я д н и й код); ш и ф р у в а н н я - п е р е т в о р е н н я о д н о р я д н о г о коду в двійковий;
п о р і в н я н н я - в и з н а ч е н н я в і д н о ш е н н я с т а р ш и н с т в а д в о х чисел а б о їх рівності; п о р о з -
р я д н е д о п о в н е н н я - ф о р м у в а н н я о б е р н е н о г о коду; п о р о з р я д н і логічні м н о ж е н н я і до­
д а в а н н я двох чисел; п о р о з р я д н е д о д а в а н н я д в о х чисел по модулю; д о д а в а н н я двох чисел.
З в и ч а й н о , цей перелік м о ж е бути р о з ш и р е н и й .
Розглянемо в и к о н а н н я операції д о д а в а н н я д в о х чисел з регістрів Р г і і Рг2 з з а п и с о м
результату в регістр РгЗ на о д н о ш и н н і й с т р у к т у р і п р о ц е с о р а , представленій на рис. 4.1:
1) Priout, РгУіп ( з а п и с до вхідного регістра А Л П РгУ вмісту регістра Р г і ) .
2) Pr2out, A d d , P r Z i n ( п о д а н н я числа з р е г і с т р а Рг2 на в н у т р і ш н ю ш и н у процесора,
звідки в о н о п о с т у п а є на другий вхід А Л П , в и к о н а н н я в А Л П операції д о д а в а н н я чисел з
регістра РгУ та з ш и н и і з а п а м ' я т о в у в а н н я р е з у л ь т а т у в регістрі PrZ).
137

3) Р й о и і , РгЗіп (запис до регістра РгЗ в м і с т у регістра Р г 2 ) .


П о д і б н и м ч и н о м в и к о н у ю т ь с я інші в и щ е п е р е р а х о в а н і операції. Н е о б х і д н о відзна­
чити, що сигнали Ргіоиі та Рг)іп, де і т а ; - н о м е р и регістрів, м а ю т ь б у т и р о з н е с е н и м и в
часі для з а б е з п е ч е н н я к о р е к т н о г о п е р е з а п и с у і н ф о р м а ц і ї з одного регістра до і н ш о г о з
в р а х у в а н н я м часу с п р а ц ю в а н н я їх вхідних та в и х і д н и х схем, є м н о с т і п р о в і д н и к і в ш и н и
та з а т р и м к и в к о м б і н а ц і й н и х схемах А Л П . Цей час в и з н а ч а є такт р о б о т и п р о ц е с о р а .

4.1.3. Багатошинна структура процесора


Наведена на рис. 4.1 о д н о ш и н н а с т р у к т у р а п р о ц е с о р а є д о с т а т н ь о п р о с т о ю . Тому
вона ш и р о к о в и к о р и с т о в у є т ь с я п р и побудові п р о ц е с о р і в р е а л ь н и х к о м п ' ю т е р і в . З о к р е ­
ма, за такою схемою п о б у д о в а н о більшість м і к р о к о н т р о л е р і в , від я к и х не в и м а г а є т ь с я
висока швидкодія. Я к щ о ж т а к а в и м о г а існує, то з а с т о с о в у є т ь с я б а г а т о ш и н н а організа­
ція п р о ц е с о р а , в якій з а в д я к и н а я в н о с т і багатьох ш и н з а б е з п е ч у є т ь с я м о ж л и в і с т ь пара­
лельного обміну і н ф о р м а ц і ї м і ж ф у н к ц і о н а л ь н и м и в у з л а м и п р о ц е с о р а і, т и м с а м и м , сут­
т є в о п і д в и щ у є т ь с я ш в и д к і с т ь о п р а ц ю в а н н я і н ф о р м а ц і ї . Як п р и к л а д на р и с . 4.3 п о к а з а н о
м о ж л и в и й варіант д в о ш и н н о ї с т р у к т у р и п р о ц е с о р а .

внутрішня шина А Пристрій внутрішня шина В


процесора керування процесора

ЛІНИ
адрес
цінна
пам'я
ЛІНІЇ РгД
даних

Р г ( п - 1)

керування
АЛП -

Міжшинний
зв'язок

Рис. 4.3. Двошинна структура процесора


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

Р о з г л я н е м о в и к о н а н н я на цій с т р у к т у р і п р о ц е с о р а операції РгЗ : = РгО + Р г і :


1) PrOout, P r l o u t , A d d , P r Z i n ( п о д а н н я на ш и н у А числа з регістра Р г і та на ш и н у В
числа з регістра РгО, в и к о н а н н я в А Л П операції д о д а в а н н я та з а п и с результату до регі­
стра P r Z ) .
2) PrZout, РгЗіп (запис числа з регістра P r Z до регістра РгЗ через міст М зв'язку між
шинами).
Як в и д н о , д л я в и к о н а н н я операції д о д а в а н н я т у т п о т р і б н о л и ш е два такти, тоді як в
о д н о ш и н н і й с т р у к т у р і п р о ц е с о р а було п о т р і б н о т р и такти.
З р о з у м і л о , що із з б і л ь ш е н н я м кількості ш и н ш в и д к і с т ь обміну з р о с т а є . Так, в т р и ш и н -
ній с т р у к т у р і п р о ц е с о р а о п е р а ц і я д о д а в а н н я двох чисел буде в и к о н а н а за один такт.
З б і л ь ш е н н я кількості ш и н у с к л а д н ю є с т р у к т у р у п р о ц е с о р а т а збільшує кількість
необхідного о б л а д н а н н я на його побудову. А д ж е к о ж н а додаткова ш и н а - це велика
кількість д о д а т к о в и х п р о в і д н и к і в , які з а й м а ю т ь багато місця на кристалі. Однак п о т р е ­
б а п і д в и щ е н н я п р о д у к т и в н о с т і з м у ш у є р о з р о б н и к і в з а с т о с о в у в а т и саме багатошинну
с т р у к т у р у п р о ц е с о р а . Більшість п р о ц е с о р і в сучасних в и с о к о п р о д у к т и в н и х комп'ютерів
є багатошинними.

4.7.4. Приклади виконання операцій в процесорі

4.1.4.1. Виконання операції додавання двох чисел


О б ' є д н а є м о послідовність е л е м е н т а р н и х о п е р а ц і й , необхідних для в и к о н а н н я однієї
к о м а н д и . Р о з г л я н е м о к о м а н д у "Додати вміст деякої комірки о с н о в н о ї пам'яті до вмісту
р е г і с т р а Р г і із з а п и с о м р е з у л ь т а т у до ц ь о г о ж регістра, п р и ч о м у адреса комірки основної
п а м ' я т і з а д а н а в а д р е с н о м у полі команди".
В и к о н а н н я цієї к о м а н д и в и м а г а є н а с т у п н и х дій:
1. Вибірки к о м а н д и з о с н о в н о ї п а м ' я т і та її з а п и с до регістра к о м а н д и РгК.
2. Вибірки п е р ш о г о о п е р а н д а з о с н о в н о ї пам'яті та його з а п и с до одного з регістрів
надоперативної пам'яті процесора.
3. В и к о н а н н я д о д а в а н н я .
4. З а с и л а н н я р е з у л ь т а т у в регістр Р г і .
П р о г р а м а в и к о н а н н я ц и х дій на о д н о ш и н н і й структурі п р о ц е с о р а (рис. 4.1) буде мати
наступний вигляд:
Фаза в и б і р к и :
1) ПЛоиг, РгАіп, з ч и т у в а н н я , о ч и щ е н н я регістра PrY, в к л ю ч е н н я п е р е н о с у та опера­
ції д о д а в а н н я в А Л П , P r Z i n (адреса к о м а н д и з п р о г р а м н о г о л і ч и л ь н и к а ПЛ подана на
ш и н у та з а п и с а л а с ь до регістра а д р е с и РгА, на вхід к е р у в а н н я р е ж и м о м р о б о т и основ­
ної п а м ' я т і п о д а н о сигнал Read, на вхід с к и д у регістра P r Y п о д а н о сигнал Reset, в А Л П
в и к о н а л а с ь о п е р а ц і я д о д а в а н н я 1 до в м і с т у п р о г р а м н о г о л і ч и л ь н и к а ПЛ та її результат
з а п и с а в с я в регістр P r Z ) .
2) PrZout, ПЛіп, ч е к а н н я п і д т в е р д ж е н н я сигналу з ч и т у в а н н я (результат д о д а в а н н я з
регістра P r Z з а п и с а в с я в п р о г р а м н и й л і ч и л ь н и к ПЛ, к о м а н д а з о с н о в н о ї пам'яті записа­
лась в регістр РгД).
3) РгДоШ:, РгКіп ( к о м а н д а з регістра д а н и х РгД з а п и с а л а с ь до регістра команди РгК).
139

Фаза в и к о н а н н я :
4) (Поле адреси PrK)out, P r A i n , з ч и т у в а н н я (адреса з п о л я а д р е с и регістра к о м а н д и
РгК переписується до регістра адреси РгА, на вхід к е р у в а н н я р е ж и м о м р о б о т и о с н о в н о ї
пам'яті подано сигнал Read).
5) Prlout, РгУіп, ч е к а н н я п і д т в е р д ж е н н я сигналу з ч и т у в а н н я (число з регістра Р г і
записалось до регістра PrY, а ч и с л о з о с н о в н о ї пам'яті з а п и с а л о с ь до регістра РгД).
6) РгДоиі, A d d , P r Z i n (число з регістра РгД п о с т у п и л о на ш и н у та д о д а л о с я в А Л П до
числа з регістра PrY, а результат з а п и с а в с я в регістр P r Z ) .
7) PrZout, P r l i n , E n d (число з регістра P r Z п е р е п и с а л о с ь в регістр Р г і , кінець в и к о ­
нання операції).
Тут A d d - код операції д о д а в а н н я , я к и й п о с т у п а є на вхід А Л П та вказує й о м у тип
виконуваної операції.

4.1.4.2. Виконання операції переходу

Адреса переходу з а з в и ч а й о д е р ж у є т ь с я ш л я х о м д о д а в а н н я з н а ч е н н я X , я к е знахо­


диться в а д р е с н о м у полі к о м а н д и , до б і ж у ч о г о з н а ч е н н я П Л .
П р о г р а м а має н а с т у п н и й в и г л я д п р и в и к о н а н н і б е з у м о в н о г о переходу:
1) ПЛоиі, РгАіп, з ч и т у в а н н я , о ч и щ е н н я регістра У, в к л ю ч е н н я п е р е н о с у та опера­
ції додавання в А Л П , P r Z i n (адреса к о м а н д и з п р о г р а м н о г о л і ч и л ь н и к а ПЛ подана на
шину та записалась до регістра а д р е с и РгА, на вхід к е р у в а н н я р е ж и м о м р о б о т и о с н о в ­
ної пам'яті подано сигнал Read, на вхід скиду регістра P r Y п о д а н о сигнал Reset, в А Л П
виконалась операція д о д а в а н н я 1 до в м і с т у п р о г р а м н о г о л і ч и л ь н и к а ПЛ та її результат
записався в регістр P r Z ) .
2) PrZout, ПЛіп, ч е к а н н я п і д т в е р д ж е н н я сигналу з ч и т у в а н н я (результат д о д а в а н н я з
регістра P r Z з а п и с а в с я в п р о г р а м н и й л і ч и л ь н и к П Л ) .
3) РгДош% РгКіп (команда з регістра д а н и х РгД з а п и с а л а с ь до регістра к о м а н д и РгК).
4) nvTout, РгУіп (число з п р о г р а м н о г о л і ч и л ь н и к а ПЛ з а п и с а л о с ь до регістра P r Y ) .
5) (Поле адреси PrK)out, A D D , P r Z i n (число з п о л я а д р е с и регістра к о м а н д и РгК п о ­
ступило на ш и н у та додалося в А Л П до числа з регістра PrY, а результат з а п и с а в с я в
регістр PrZ).
6) PrZout, ПЛіп, End (число з регістра P r Z п е р е п и с а л о с ь в п р о г р а м н и й л і ч и л ь н и к ПЛ,
кінець в и к о н а н н я операції).
При виконанні умовного переходу по значенню ПЛ = 0 крок 4 заміниться на наступний:
7) ПЛоиІ, РгУіп, if П Л = 0 then E n d (запис вмісту п р о г р а м н о г о л і ч и л ь н и к а до регістра
PrY і його аналіз на рівність 0. Я к щ о це так - кінець в и к о н а н н я операції).

4.1.5. Особливості побудови процесора комп'ютера із складною


системою команд
Вище розглядалася с т р у к т у р а та о р г а н і з а ц і я р о б о т и п р о ц е с о р а к о м п ' ю т е р а , я к и й із
середини вісімдесятих років м и н у л о г о століття був в і д н е с е н и й до к о м п ' ю т е р і в з склад­
ною системою к о м а н д К С С К (CISC). А н а л і з у ю ч и його р о б о т у і р о з г л я н у т і в розділі 2
формат команди та склад системи к о м а н д н а з в а н о г о к о м п ' ю т е р а , м о ж н а п р и й т и до в и ­
сновку, що для п р о ц е с о р а к о м п ' ю т е р а із складною системою к о м а н д х а р а к т е р н і н а с т у п н і
особливості:
740

• в и к о н а н н я к о м а н д и за багато тактів, оскільки для ц ь о г о потрібно здійснити бага­


т о р а з о в і операції з в е р н е н н я до о с н о в н о ї пам'яті та до п р о г р а м н о - д о с т у п н и х регістрів
процесора;
• о р і є н т а ц і я А Л П на в и к о н а н н я великої кількості о п е р а ц і й , що п о в ' я з а н о з р о з ш и р е ­
н и м с к л а д о м системи команд;
• складна система р о з п і з н а в а н н я к о м а н д и , що п о в ' я з а н о з великою кількістю методів
адресації та в е л и к о ю кількістю ф о р м а т і в к о м а н д різної р о з р я д н о с т і ;
• п р о г р а м н е д е ш и ф р у в а н н я к о м а н д з м е т о ю з м е н ш е н н я затрат обладнання;
• складна о р г а н і з а ц і я к о н в е є р и з а ц і ї в и к о н а н н я к о м а н д , що п о в ' я з а н о , в першу чергу,
з р і з н о т и п н і с т ю їх в и к о н а н н я ;
• орієнтація структури на в и к о н а н н я команд типу регістр-пам'ять та пам'ять-пам'ять.
Вказані о с о б л и в о с т і с т р и м у ю т ь побудову в и с о к о п р о д у к т и в н и х комп'ютерів на осно­
ві п р о ц е с о р а р о з г л я н у т о г о типу. Вони були в р а х о в а н і при с т в о р е н н і процесорів комп'ю­
терів із п р о с т о ю с и с т е м о ю к о м а н д .

4.2. Процесор комп'ютера з простою системою команд

4.2.1. Вимоги до процесора комп'ютера з простою системою команд


П р и р о з г л я д і системи к о м а н д к о м п ' ю т е р а ми о з н а й о м и л и с я з архітектурою комп'ю­
терів із п р о с т о ю с и с т е м о ю к о м а н д К П С К (RISC). Виходячи з о с н о в н и х п р и н ц и п і в реалі­
зації ц и х к о м п ' ю т е р і в , м о ж н а в и д і л и т и н а с т у п н і в и м о г и , я к и х необхідно п р и т р и м у в а т и ­
ся п р и побудові їх п р о ц е с о р а :
• Довільна к о м п ' ю т е р н а к о м а н д а , н е з а л е ж н о від її типу, має в и к о н у в а т и с я за один
т а к т (чи о д н о т а к т о в и й ц и к л ) .
• П р и с т р і й к е р у в а н н я та а р и ф м е т и к о - л о г і ч н и й п р и с т р і й п р о ц е с о р а мають орієнту­
в а т и с я н а в и к о н а н н я м і н і м а л ь н о ї кількості с п р о щ е н и х к о м а н д , щ о статистично пере­
в а ж а ю т ь у п р о г р а м а х , п р и ч о м у в системі к о м а н д в і д н о с н о небагато операцій та р е ж и м і в
адресації о п е р а н д і в (способів адресації).
• К о м а н д и о б р о б к и д а н и х м а ю т ь р е а л і з у в а т и с я л и ш е у ф о р м і "регістр-регістр". Обмі­
ни з о с н о в н о ю п а м ' я т т ю в и к о н у ю т ь с я л и ш е за д о п о м о г о ю к о м а н д з а в а н т а ж е н н я / з а п и с у
( а р х і т е к т у р а load/store).
• Д е ш и ф р у в а н н я к о м а н д із с п р о щ е н и м и ф о р м а т а м и м а є в и к о н у в а т и с я л и ш е апарат­
н о , аби з б і л ь ш и т и ш в и д к о д і ю .
• Н е о б х і д н о з а б е з п е ч и т и в и с о к и й р і в е н ь к о н в е є р и з а ц і ї в и к о н а н н я команд.
• Регістрова п а м ' я т ь м а є в к л ю ч а т и в е л и к у кількість п р о г р а м н о - д о с т у п н и х регістрів.
П р и цьому необхідно п р о в о д и т и оптимізацію структури процесора, що проектується, з
метою забезпечення н а й ш в и д ш о г о в и к о н а н н я обраних команд та передбачити можливість
д о д а в а н н я до о т р и м а н о г о списку інших команд, я к щ о в о н и не ускладнюють процесора.

4.2.2. Базові принципи побудови процесора комп'ютера з простою


системою команд
Для ілюстрації б а з о в и х п р и н ц и п і в п о б у д о в и п р о ц е с о р а к о м п ' ю т е р а з простою сис­
темою к о м а н д ми в и к о р и с т а є м о архітектуру комп'ютера, яка була з а п р о п о н о в а н а для
н а в ч а л ь н и х цілей Д ж о н о м Хеннессі та Дейвідом П а т т е р с о н о м і о т р и м а л а назву D L X . Ця
747

архітектура у з а г а л ь н ю є о с о б л и в о с т і архітектур н а с т у п н и х с у ч а с н и х к о м п ' ю т е р і в : A M D


29000, DEC3100, Н Р 8 5 0 , І В М 8 0 1 , Inteli860, M I P S М / 1 2 0 А , M I P S M/1000, M88000, RISC1,
SGI 4D/60, SPARCstation-1, SUN-4/110, SUN-4/260.
Регістровий файл процесора комп'ютера D L X вміщує 32 регістри загального призначен­
ня (R0...R31) для зберігання цілих чисел, 32 регістри (F0...31) для зберігання даних з рухо­
мою комою. Набір команд цього комп'ютера включає типові арифметичні й логічні операції,
операції з фіксованою та рухомою комою, операції пересилання даних, операції керування
потокоїМ команд і системні операції. У а р и ф м е т и ч н и х командах використовується триадрес-
ний формат, типовий для комп'ютерів з архітектурою КПСК, а для звернення до пам'яті ви­
користовуються операції завантаження і запису вмісту регістрів у пам'ять.
Основою п р о е к т у в а н н я с т р у к т у р и п р о ц е с о р а к о м п ' ю т е р а з п р о с т о ю с и с т е м о ю ко­
манд є часова діаграма в и к о н а н н я к о м а н д з н а й б і л ь ш о ю складністю, до числа я к и х на­
лежить, зокрема, к о м а н д а з а в а н т а ж е н н я слова. Р о з г л я н е м о ц и к л в и к о н а н н я к о м а н д и
вибірки з о с н о в н о ї п а м ' я т і ( з а в а н т а ж е н н я ) слова LW R5, 16(R26). В к о м п ' ю т е р і D L X ко­
мандний ц и к л поділений н а п ' я т ь ф а з . Тому д л я в и к о н а н н я в к а з а н о ї к о м а н д и п о т р і б н о
виконати наступні ф а з и :
• в и б р а т и зазначену к о м а н д у з о с н о в н о ї п а м ' я т і (перша ф а з а в и к о н а н н я к о м а н д и із
назвою IF (Instruction Fetch);
• декодувати к о м а н д у та в и б р а т и о п е р а н д и (друга ф а з а в и к о н а н н я к о м а н д и із на­
звою ID (Instruction Detecting);
• виконати команду, т о б т о о б р а х у в а т и в и к о н а в ч у адресу о п е р а н д а 16 + [R26] ( т р е т я
фаза в и к о н а н н я к о м а н д и із н а з в о ю EX (Execution);
• в и б р а т и о п е р а н д із о с н о в н о ї пам'яті ( ч е т в е р т а ф а з а в и к о н а н н я к о м а н д и із н а з в о ю
M E M (Memory);
• переслати в и б р а н и й з о с н о в н о ї п а м ' я т і о п е р а н д до регістра R5 р е г і с т р о в о г о ф а й л а
(п'ята фаза в и к о н а н н я к о м а н д и із н а з в о ю WB (Write Back).
Використані н а з в и ф а з дещо у з а г а л ь н ю ю т ь п р и т а м а н н у л и ш е к о м а н д і L W с е м а н т и к у
кожної окремої ф а з и . Це к о р е к т н о , бо н а ш о ю м е т о ю є н а б л и ж е н н я до такої п о с л і д о в н о с ­
ті фаз, яка з а д о в о л ь н я є в и м о г а м будь-якої к о м а н д и із заданої до р е а л і з а ц і ї м н о ж и н и з
метою д о с я г н е н н я н а й б і л ь ш о ї швидкодії. Інші к о м а н д и не з а в ж д и в и м а г а ю т ь реалізації
усього переліченого н а б о р у ф а з , т о м у що м а ю т ь м е н ш у часову складність.
На рис. 4.4 наведена часова діаграма виконання п'ятифазової команди з а в а н т а ж е н н я LW.
Залежно від структури процесора ця команда може бути виконаною за різний час, я к и й буде
складатися з суми проміжків часу, необхідних для виконання кожної фази. Розглянемо під­
хід до побудови процесора з тим, щоб задовольнити вимогу, згідно з якою довільна комп'ю­
терна команда, незалежно від її типу, має виконуватися за один такт (чи однотактовий цикл),
яка ставиться до процесорів комп'ютера з простою системою команд.

Час виконання

НЕМ ю №

Команда і -1 Команда і Команда і+]

Рис. 4.4. Часова діаграма виконання п'ятифазової команди завантаження LW


142

П р е д с т а в и м о а л г о р и т м в и к о н а н н я к о м а н д и у вигляді потокового графа, кожна з вер­


ш и н я к о г о п о з н а ч а є о п е р а т о р відповідної ф а з и в и к о н а н н я команди (рис. 4.5а).

І
Блок вибірки команди з ОП
\

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

Операційний блок

Блок вибірки та запису даних до ОП

Блок запису даних до


регістрової пам'яті

1
а б
Рис. 4.5 а - отоковий граф виконання команди; 6 - структура процесора,
орієнтованого на його реалізацію

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


а л г о р и т м її в и к о н а н н я , т о б т о п о с т а в и т и у відповідність к о ж н о м у оператору алгорит­
му ф у н к ц і о н а л ь н і вузли п р о ц е с о р а , які їх в и к о н у ю т ь , та з'єднати їх м і ж собою згідно із
з в ' я з к а м и в е р ш и н п о т о к о в о г о графа алгоритму. Тоді с т р у к т у р а п р о ц е с о р а комп'ютера
з п р о с т о ю с и с т е м о ю к о м а н д , я к и й в и к о н у є н а з в а н і ф а з и , м о ж е бути подана наступним
р и с у н к о м (рис. 4.5б). Як б а ч и м о , п р о ц е с о р м і с т и т ь п'ять послідовно з ' є д н а н и х блоків:
в и б і р к и к о м а н д и з о с н о в н о ї пам'яті, д е к о д у в а н н я о п е р а н д і в та вибірки команди з регі­
стрової п а м ' я т і , о п е р а ц і й н и й , вибірки та з а п и с у д а н и х до основної пам'яті, запису даних
до р е г і с т р о в о ї пам'яті. К о ж е н з ц и х блоків в и к о н у є відповідну ф а з у командного циклу
та передає р е з у л ь т а т и до н а с т у п н о г о блоку. Результатом послідовної р о б о т и цих блоків
є виконання команди
Д е т а л і з о в а н а с т р у к т у р а п р о ц е с о р а к о м п ' ю т е р а ОІХ, яка побудована на основі опи­
саного в и щ е підходу, п р е д с т а в л е н а на рис. 4.6.
143

Б л о к декодування
команди та вибірки
операндів з Б л о к запису даних д о
Блок вибірки команди э ОП регістрової пам'яті регістрової пам'яті

Адреса
Команда
команди
ихідн, В х і
Д н і

[ані Адреса д а н |

даного

Рис. 4.6. Структура процесЬра комп'ютера з простою системою команд

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


відповідну ф а з у к о м а н д н о г о ц и к л у п о т о к о в о г о г р а ф а а л г о р и т м у в и к о н а н н я к о м а н д и .
Перший о п е р а т о р IF в и к о н у є т ь с я на н а с т у п н и х елементах: п р о г р а м н о м у л і ч и л ь н и к у PC
(Program Counter), суматорі Adder та д в о х регістрах N P C і IR. Вміст п р о г р а м н о г о лі­
чильника PC визначає адресу команди в основній пам'яті. Комбінаційний суматор Adder
обраховує адресу наступної з а чергою в и к о н а н н я к о м а н д и . П р и ц ь о м у в р а х о в а н о , щ о
впорядкована послідовність к о м а н д ( п р о г р а м а ) складається з ч о т и р и б а й т о в и х к о м а н д
(усі команди м а ю т ь ф о р м а т и д о в ж и н о ю 32 біти), я к і р о з м і щ е н о в о с н о в н і й п а м ' я т і за
послідовними а д р е с а м и 0,4, 8, С і т. д. Ч е р е з це к о н с т а н т а зсуву адреси ( п е р е с у в а н н я п о ­
кажчика на н а с т у п н у за чергою команду) д о р і в н ю є +4. Визначене за д о п о м о г о ю сумато­
ра значення адреси в и б и р а н н я н а с т у п н о ї к о м а н д и зберігається у регістрі N P C (next P C ) .
Зчитаний з основної пам'яті код п о т о ч н о ї к о м а н д и з а п и с у є т ь с я до регістра к о м а н д и IR.
Поля щ о й н о в и б р а н о ї к о м а н д и м і с т я т ь адреси п р о г р а м н о - д о с т у п н и х регістрів регі­
стрової файла процесора. Вміст з а з н а ч е н и х полів ф о р м а т у к о м а н д и в р а м к а х о п е р а т о ­
ра ID надсилається на адресні входи регістрової п а м ' я т і Regs, а відповідні надісланим
адресам коди операндів з а в а н т а ж у ю т ь с я до в н у т р і ш н і х , програхмно-недосяжних, т о б т о
службових, регістрів А і В.
Існує ще один тип операнда з н а з в о ю " б е з п о с е р е д н і й " (Imm). Й о г о з а д а ю т ь п р я м о у
форматі к о м а н д и . Як п р а в и л о , д о в ж и н а б е з п о с е р е д н ь о г о о п е р а н д а не п е р е в и щ у є поло­
вини д о в ж и н и ф о р м а т у к о м а н д и . В к о м п ' ю т е р і D L X безпосередній о п е р а н д має д о в ж и н у
32/2 = 16 бітів. У той самий час б а ж а н о з а ф і к с у в а т и д о в ж и н у ф о р м а т у д а н и х такою, що
дорівнює д о в ж и н і ф о р м а т у к о м а н д и , а д ж е р і з н о м а н і т ь д о в ж и н ф о р м а т і в с у т т є в о п р и ­
гальмовує комп'ютер. Я к щ о усі ф о р м а т и даних, як і ф о р м а т и к о м а н д , м а т и м у т ь д о в ж и ­
ну 32 біти, тоді б е з п о с е р е д н ь о м у о п е р а н д у не в и с т а ч а т и м е ще 16 бітів, аби бути стандарт­
ним за довжиною. Тому тут в и к о р и с т а н и й комбінаційний вузол Sign Extend, я к и й виконує
144

знакове р о з ш и р е н н я 16-бітового безпосереднього операнда до 32-х бітів. Результат зна­


кового р о з ш и р е н н я т и м ч а с о в о зберігають у с л у ж б о в о м у регістрі Imm.
В ц і л о м у м о ж н а н а р а х у в а т и ч о т и р и м о ж л и в і о п е р а н д и на вході а р и ф м е т и к о логіч­
ного п р и с т р о ю A L U п р о ц е с о р а : з регістрів А, В, Imm та вміст регістра адреси наступної
д л я в и к о н а н н я к о м а н д и N P C , н а д я к и м и в и к о н у є т ь с я ф у н к ц і о н а л ь н и й о п е р а т о р ЕХ. На­
перед з а з н а ч и м о , щ о о п е р а н д - а д р е с а N P C о п р а ц ь о в у є т ь с я в A L U п р и в и к о н а н н і команд
у м о в н о г о переходу, коли на додаток до н а с т у п н о ї п о т р і б н а ще одна адреса, що утворе­
на д о д а в а н н я м до в м і с т у N P C деякої к о н с т а н т и переходу. В и б и р а н н я двох операндів на
вхід A L U і з ч о т и р ь о х м о ж л и в и х в и к о н у є т ь с я з а д о п о м о г о ю мультиплексорів операндів
mux, р о з т а ш о в а н и х на й о г о входах.
Результат о п е р а ц і ї з A L U т и м ч а с о в о з а п а м ' я т о в у є т ь с я у п р о м і ж н о м у с л у ж б о в о м у
регістрі A L U o u t . Я к щ о р е з у л ь т а т о м операції є ч и с л о , тоді в о н о з а н о с и т ь с я до комірки
р е г і с т р о в о г о ф а й л а . Я к щ о р е з у л ь т а т о м операції є адреса, тоді ця адреса надсилається до
(верхнього на р и с у н к у ) м у л ь т и п л е к с о р а в и б о р у а д р е с и mux. За допомогою зазначеного
м у л ь т и п л е к с о р а в и б и р а ю т ь а д р е с у переходу (чергова чи перехід), яка і надсилається до
п р о г р а м н о г о л і ч и л ь н и к а P C , аби к о р е к т н о п р о д о в ж и т и в и к о н а н н я п р о г р а м и .
К е р у в а н н я м у л ь т и п л е к с о р о м в и б о р у а д р е с и н а с т у п н о ї к о м а н д и п о к л а д е н о на вузол
Zero?, де вміст с л у ж б о в о г о регістра А п о р і в н ю є т ь с я із нулем (дорівнює нулю, більше
нуля, м е н ш е нуля і т. д., з а л е ж н о від в и д у в и к о н у в а н о ї у п о т о ч н и й час операції умовного
переходу). Результат порівняння є бінарним логічним значенням (так або ні). Саме цей бі­
нарний результат керує р о б о т о ю мультиплексора в и б и р а н н я адреси наступної команди.
П р и виконанні ф а з и M E M результат-адреса з виходу A L U надсилається д о основної
пам'яті як о т р и м а н а адреса комірки цієї пам'яті (для к о м а н д з б е р е ж е н н я / з а в а н т а ж е н н я )
Результатом на виході п р а в о г о на р и с у н к у м у л ь т и п л е к с о р а м о ж е бути або вміст
о с н о в н о ї п а м ' я т і (при в и к о н а н н і к о м а н д и з а в а н т а ж е н н я LW слова з основної пам'яті до
регістра р е г і с т р о в о г о ф а й л а ) , або результат в и к о н а н н я а р и ф м е т и ч н о ї , зсувної, логічної
чи іншої операції в A L U ( н а п р и к л а д , при в и к о н а н н і к о м а н д A D D , SUB і т. д.). Такий ре­
зультат в р а м к а х в и к о н а н н я ф а з и WB з а с о б а м и м і к р о п р о г р а м у в а н н я зберігають в регі­
стрі р е г і с т р о в о г о ф а й л а . О т ж е , з а з н а ч е н и й м у л ь т и п л е к с о р , к е р о в а н и й регістром поточ­
ної к о м а н д и , к о м у т у є на вхід регістрового ф а й л а п о т р і б н у і н ф о р м а ц і ю
Таким ч и н о м , а п а р а т н о в і д о б р а з и в ш и п о т о к о в и й г р а ф а л г о р и т м у в и к о н а н н я коман­
ди, в д а л о с я з а б е з п е ч и т и вимогу, щ о б вона в и к о н у в а л а с я за один такт. Як в и д н о з вище
п р и в е д е н о г о о п и с у р о б о т и п р о ц е с о р а , д л я с п р о щ е н н я п о я с н е н н я т у т були використані
п р о м і ж н і регістри д л я з а п и с у о п е р а н д і в , я к і м о ж у т ь бути видалені. П о р і в н я н о з п р о ­
ц е с о р о м к о м п ' ю т е р а із с к л а д н о ю системою к о м а н д в и к о н а н н я к о м а н д и в приведеній
с т р у к т у р і п р о ц е с о р а с у т т є в о с п р о с т и л о с я . Далі р о з г л я н е м о це детальніше, але спочатку
п р о в е д е м о аналіз взаємодії п р о ц е с о р а з о с н о в н о ю п а м ' я т т ю .

4.2.3. Взаємодія процесора з пам'яттю в комп'ютері з простою


системою команд
Відомий так з в а н и й п а р а д о к с пам'яті - п а м ' я т ь м о ж е мати м а л и й о б ' є м , проте бути
ш в и д к о ю і з а д о в о л ь н я т и в и м о г и п р о ц е с о р а щ о д о швидкодії, або мати відносно великий
о б ' є м і б у т и п о в і л ь н о ю . Н е м а є п а м ' я т і в і д н о с н о великої і, водночас, швидкої. С т а в и т и за­
р а з п и т а н н я п р о о с н о в н у п а м ' я т ь , о б ' є м якої з а д о в о л ь н я є системного програміста (сис-
145

темні програми) є, б е з п е р е ч н о , н е р е а л ь н и м з а в д а н н я м . О б ' є м у о с н о в н о ї п а м ' я т і з а в ж д и


не вистачає і, м о ж л и в о , не вистачатиме.
Аби подолати з а з н а ч е н у невідповідність, в и б у д о в у ю т ь багаторівневу ієрархічну сис­
тему пам'яті комп'ютера, де на в е р х н ь о м у рівні ієрархії з н а х о д я т ь с я п р о г р а м н о - д о с т у п ­
ні регістри регістрового ф а й л а п р о ц е с о р а , на д р у г о м у - кеш, потім к о м і р к и о с н о в н о ї
пам'яті, потім система з о в н і ш н ь о ї п а м ' я т і (диск, магнітні стрічки, архівна п а м ' я т ь з ла­
зерною технологією і т. д.). За р і в н я м и ієрархії, з г о р и донизу, о б ' є м п р и с т р о ї в п а м ' я т і
зростає, а швидкодія з м е н ш у є т ь с я . Керує і н ф о р м а ц і й н и м и о б м і н а м и м і ж р і в н я м и опе­
раційна система. Коли багаторівневість та ієрархію п а м ' я т і п р и х о в а н о від п р и к л а д н о г о
програміста, тоді к а ж у т ь п р о р е а л і з а ц і ю в і р т у а л ь н о ї п а м ' я т і , де, ніби, с к а с о в а н о з а з н а ­
чений в и щ е парадокс пам'яті. В ц ь о м у в и п а д к у п р и к л а д н о м у п р о г р а м і с т у здається, що
він використовує є д и н у в і д н о с н о в е л и к у і ш в и д к у п а м ' я т ь .
Важливим є той факт, що з в е р н е н н я п р о ц е с о р а до п а м ' я т і з а в ж д и л о к а л і з о в а н о в не­
великому діапазоні змін її адрес. С а м е він і д о з в о л я є з а с т о с о в у в а т и ієрархічну систему
пам'яті, аби розв'язати невідповідність швидкодій процесора і системи пам'яті з одним рів­
нем ієрархії. М і ж процесором і основною пам'яттю розташована кеш пам'ять (рис. 4.7) - це
швидка буферна п а м ' я т ь н е в е л и к о г о об'єму. Кеш п а м ' я т ь п р а ц ю є на близькій тактовій
частоті до п р о ц е с о р а і не п р и г а л ь м о в у є його р о б о т у . Кеш (cache у перекладі з англій­
ської - т а й н и к ) л и ш а є т ь с я п р о з о р о ю д л я програміста, т о м у що система к о м а н д п р о ц е с о ­
ра, як п р а в и л о , не містить к о м а н д р о б о т и з кеш п а м ' я т т ю .

Кеш пам'ять
читання/ Контролер читання/
запис кеш пам'яті запис
Процесор Основна
пам'ять
Асоціативна
шина кеш пам'ять шина
процесора пам'яті

Рис. 4.7. Кеш пам'ять у складі ядра комп'ютера

При поясненні р о б о т и кеш п а м ' я т і м о ж н а д о п у с т и т и , що п р о ц е с о р т а к о ж не «ба­


чить» кеш і генерує адреси п а м ' я т і так, ніби кеш п а м ' я т і не має. П р о т е кеш п а м ' я т ь , як
правило, існує, і на а п а р а т н о м у рівні п е р е х о п л ю є сигнали п р о ц е с о р а ч и т а н н я / з а п и с у , а
коли треба, то надає п р о ц е с о р у ш в и д к і копії і н ф о р м а ц і й н и х кодів, я к і т и м ч а с о в о збері­
гає у власній р о б о ч і й пам'яті. Я к щ о кеш п а м ' я т ь с п р о м о ж н а п і д м і н и т и собою о с н о в н у
пам'ять (у понад 96-98 відсотків в и п а д к і в ) , тоді в о н а за р а х у н о к в л а с н и х ресурсів з а д о ­
вольняє запит процесора. П р о ц е с о р не п р и г а л ь м о в у є т ь с я і п р о д о в ж у є п р а ц ю в а т и на п о ­
вній швидкості. Коли «підміна» о с н о в н о ї п а м ' я т і н е м о ж л и в а (менше від д в о х - ч о т и р ь о х
відсотків випадків), тоді кеш п а м ' я т ь з а л у ч а є до р о б о т и о с н о в н у п а м ' я т ь , обмін з я к о ю
суттєво пригальмовує п р о ц е с о р .
Усі завдання, пов'язані із п е р е х о п л е н н я м з а п и т і в від п р о ц е с о р а до основної пам'яті,
вирішує к о н т р о л е р кеш пам'яті, я к и й є її с к л а д о в о ю ч а с т и н о ю . Другою ч а с т и н о ю кеш
пам'яті є невелика р о б о ч а п а м ' я т ь , де зберігають вміст копій к о м і р о к о с н о в н о ї пам'яті,
що брали участь в о б с л у г о в у в а н н і останніх, т о б т о н а й б і л ь ш «свіжих» з а п и т і в п р о ц е с о ­
ра. Важливо, що вміст к о м і р о к о с н о в н о ї п а м ' я т і к о п і ю є т ь с я до кеш п а м ' я т і р а з о м із свої­
ми адресами. Саме ці копійовані адреси і д о з в о л я ю т ь к о н т р о л е р у кеш п а м ' я т і п р и й м а т и

ІПЧям 171.
146

р і ш е н н я п р о с п р о м о ж н і с т ь з а д о в о л ь н и т и к о н к р е т н и й п р о ц е с о р н и й з а п и т без залучення
до о б м і н у п о в і л ь н о ї о с н о в н о ї пам'яті.
С п р о щ е н и й в а р і а н т с т р у к т у р и комп'ютера, в я к о м у в и к о р и с т о в у є т ь с я кеш пам'ять,
п о д а н о на рис. 4.8. П р и с т р і й к е р у в а н н я надсилає керуючі сигнали до процесора та основ­
ної пам'яті. З п р о ц е с о р а сигнали станів, я к и м и м о ж у т ь бути біти регістра команди і інше,
надходять до п р и с т р о ю к е р у в а н н я , аби реалізувати р о з г а л у ж е н н я м і к р о п р о г р а м и .
Для з б е р і г а н н я д а н и х і к о м а н д в и к о р и с т а н о розділені кеш пам'яті даних і команд Гар­
вардської а р х і т е к т у р и . В свою чергу, кеш п а м ' я т і з в ' я з а н і з є д и н о ю п а м ' я т т ю П р и н с т о н -
ської а р х і т е к т у р и . Ясно, що о б м і н в підсистемі " о с н о в н а п а м ' я т ь - кеш п а м ' я т ь даних» є
д в о с т о р о н н і м , а в підсистемі «основна п а м ' я т ь - кеш п а м ' я т ь к о м а н д " - о д н о с т о р о н н і м .

Пристрій керування

Сигнали і ' Сигнали


керування станів

Кеш пам'ять Команди Дані Кеш пам'ять


Процесор
команд даних

Команди Дані

Сигнали
керування
Основна пам'ять

Рис. 4.8. Спрощена структура комп'ютера ОЬХ

М о ж н а п о б а ч и т и , щ о наведена с т р у к т у р а е ф е к т и в н о п о є д н а л а риси Принстонської


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

4 . 2 . 4 . Виконання команд в процесорі комп'ютера з простою


системою команд

4.2.4.1. Фаза вибирання команди

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


на п р и к л а д і п р о ц е с о р а к о м п ' ю т е р а DLX, с т р у к т у р а я к о г о була р о з г л я н у т а в п. 4.2.2.
В рамках фази в и б и р а н н я команди 1Т виконуються наступні мікродії (мікрооперації):

Ш = ІМ[РС];

ОТС = Р С + 4 .
747

Виконання першої мікродії с п р и ч и н ю є з а в а н т а ж е н н я д о 32-бітового регістра п о т о ч ­


ної команди IR вмісту ч о т и р ь о х п о с л і д о в н о р о з т а ш о в а н и х комірок п а м ' я т і к о м а н д , п о ­
чинаючи від адреси (PC) + 0 і з а в е р ш у ю ч и а д р е с о ю (PC) + 3. Як і з а в ж д и , за д о п о м о г о ю
(PC) позначено вміст п р о г р а м н о г о л і ч и л ь н и к а P C .
Друга мікродія ( N P C = PC + 4) в и р а х о в у є " п л а н о в у " адресу н а с т у п н о ї за чергою ко­
манди з послідовного потоку. Тобто т у т в и з н а ч а є т ь с я і т и м ч а с о в о зберігається у регістрі
N P C вміст п р о г р а м н о г о л і ч и л ь н и к а . "Логічне" в и б и р а н н я вмісту ч о т и р ь о х п о с л і д о в н о
розташованих о д н о б а й т о в и х комірок замість однієї ч о т и р и б а й т о в о ї п і д к р е с л ю є те, щ о
навіть на рівні мікродій а д р е с у в а н н я комірок п а м ' я т і в к а з у ю т ь логічно. За у м о в и коли
адреса байта кратна ч о т и р ь о м , т о б т о д о т р и м а н о в и р і в н ю в а н н я г р а н и ц ь а д р е с к о м а н д , із
пам яті, одразу (за одне з в е р н е н н я ) в и б и р а ю т ь ч о т и р и б а й т и і навіть цілі п а к е т и по ч о ­
тири байти. О т р и м а н и й з п а м ' я т і д а н и х код тлумачать як 3 2 - р о з р я д н е слово, а з п а м ' я т і
команд - як одну к о м а н д у
З а у в а ж и м о , що о б и д в і наведені мікродії т е о р е т и ч н о є с у м і с н и м и в часі. С а м е т о м у
вони м о ж у т ь і м а ю т ь в и к о н у в а т и с я п а р а л е л ь н о . Ці мікродії у т в о р ю ю т ь є д и н у м і к р о к о -
манду
В а ж л и в о ю властивістю ф а з и IF є те, що вона не п р и й м а є до уваги і с н у в а н н я відомого
«парадокса пам'яті». Дійсно, у фазі IF за ч а с о в и м и в и т р а т а м и мікродія в и б и р а н н я з п о ­
вільних комірок п а м ' я т і к о м а н д є т о т о ж н о ю мікродії, що п р а ц ю є з в н у т р і ш н і м и , а саме
тому н а д ш в и д к и м и р е г і с т р а м и п р о ц е с о р а

4.2.4.2. Фаза декодування команди

В рамках фази декодування команди ID виконуються наступні мікродії (мікрооперації):


A = R e g s [ I R Ji 6

В = Regs [IR J; u

I m m = ((TR ) ## I R
16
16
).
1 6 3 ]

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


одночасного (паралельного) в и к о н а н н я мікродій, в ж и т о н а с т у п н і п о з н а ч е н н я :
• А, В, Imm - в н у т р і ш н і с л у ж б о в і 3 2 - р о з р я д н і регістри д л я п р о м і ж н о г о з б е р е ж е н н я
кодів; всі три регістри є " п р о з о р и м и " д л я п р о г р а м і с т а в т о м у сенсі, що в о н и аж ніяк не
відбиті в м а ш и н н и х командах.
• Regs [address] - н о м е р регістра р е г і с т р о в о г о ф а й л а п р о ц е с о р а ;
• R x - поле регістра команд, я к е містить групу п о с л і д о в н о р о з т а ш о в а н и х бітів - від
біта з н о м е р о м X до біта з н о м е р о м Y в к л ю ч н о ; з в е р н е м о увагу на н у м е р а ц і ю бітів у слові
процесора - лівий біт м а є 0-й н о м е р , а п р а в и й - 31-й н о м е р .
• IR 6 - поле регістра к о м а н д , що містить б і н а р н и й н о м е р регістра - д ж е р е л а д а н о ­
го (див. ф о р м а т команд); д о в ж и н а поля рівна 5 бітам, що д о з в о л я є позначати та адресу­
вати 32 регістри - від R до R 0 M

• IR - т а к о ж п ' я т и б і т о в е поле н о м е р а ще о д н о г о регістра - д ж е р е л а д а н о г о з


n 15

м н о ж и н и R -..R 0 31

Вже з а у в а ж у в а л о с я , що поле б е з п о с е р е д н ь о г о о п е р а н д а (Immediate а б о Imm) у ф о р ­


маті к о м а н д и має д о в ж и н у л и ш е 16 бітів. В той же час, р о з р я д н і с т ь і н ф о р м а ц і й н о г о
тракту в усіх трьох с л у ж б о в и х регістрів рівна 32 біти. До того, як з а п и с а т и 16-бітовий
код I R 16 б е з п о с е р е д н ь о г о о п е р а н д а з регістра к о м а н д до с л у ж б о в о г о регістра Imm, цей
148

код т р е б а р о з ш и р и т и з в р а х у в а н н я м знака ( т о б т о р о з р я д у IR ) до 32-бітового значення


]6

а наступним стандартним алгоритмом знакового розширення:


I R # # I R ##...## I R # I R
16 16 1 6 I 6 3 1

Тут с и м в о л о м ## п о з н а ч е н о о п е р а ц і ю з ч е п л е н н я (конкатенацію).
В а ж л и в о , що в р а м к а х ф а з и ID в и к о н у є т ь с я д е к о д у в а н н я ( р о з п і з н а в а н н я ) к о м а н д и та
в и б и р а н н я усіх м о ж л и в и х варіантів о п е р а н д і в п о т о ч н о ї к о м а н д и , н е з а л е ж н о від її типу,
з м е т о ю з б і л ь ш е н н я швидкодії. З і н ш о г о боку, м о ж л и в і с т ь одночасного в и б и р а н н я усіх
варіантів о п е р а н д і в п о т е н ц і й н о о б у м о в л е н о відповідною с т р у к т у р о ю ф о р м а т і в команд,
де ф і к с о в а н о р о з т а ш у в а н н я п о л і в - п о к а ж ч и к і в на д ж е р е л а д а н и х та п р и й м а ч і операндів
і результатів. І н ш и м и с л о в а м и , ф о р м а т и к о м а н д п р о ц е с о р а втілюють техніку к о д у в а н н я
ф о р м а т і в к о м а н д , що відома під н а з в о ю "fixed-field coding".

4.2.4.3. Фаза виконання та формування ефективної адреси

Мікродїї, що в и к о н у ю т ь в р а м к а х ф а з и в и к о н а н н я та в и з н а ч е н н я е ф е к т и в н о ї адреси
ЕХ, в ж е з а л е ж а т ь від т и п у п о т о ч н о ї к о м а н д и . Враховуючи це, вигідно поділити усі ко­
м а н д и п р о ц е с о р а н а н а с т у п н і т р и групи:
• к о м а н д и в и к о н а н н я о п е р а ц і й з а в а н т а ж е н н я о п е р а н д і в з о с н о в н о ї пам'яті та збере­
ж е н н я результатів у о с н о в н і й пам'яті;
• команди виконання операцій арифметико-логічного пристрою;
• к о м а н д и в и к о н а н н я о п е р а ц і й у м о в н и х та б е з у м о в н и х переходів.
Далі р о з г л я д а є м о п р и т а м а н н і к о ж н і й групі к о м а н д мікродії
К о м а н д и в и к о н а н н я о п е р а ц і ї з в е р н е н н я д о пам'яті д а н и х
В р а м к а х ф а з и ЕХ операції з в е р н е н н я до п а м ' я т і д а н и х (load/store instructions) го­
т у ю т ь з н а ч е н н я е ф е к т и в н о ї адреси, т о б т о в и р а х о в у ю т ь з н а ч е н н я бінарного коду, що є
а д р е с о ю к о м і р к и п а м ' я т і даних. Виконується н а с т у п н а мікродія:
ALUoutput = А + Imm.
П о з н а ч е н е в мікродії д о д а в а н н я б е з п о с е р е д н ь о г о о п е р а н д а (однієї з к о м п о н е н т адре­
си) з вмістом р о б о ч о г о регістра А (другої к о м п о н е н т и ) реалізується в A L U . О т р и м а н а
сума (вона з а в ж д и ціла і додатна, п е р е н о с о м н е х т у ю т ь ) з а п и с у є т ь с я до ще одного, п р о ­
з о р о г о для програміста, регістра ALUoutput. Цей регістр м а є р о з р я д н і с т ь 32 біти. Він
зберігає коди результатів, що з ' я в л я ю т ь с я на виході комбінаційної схеми з назвою A L U .
Я к щ о п р и г а д а т и дію к о м а н д и LW, тоді п р и з н а ч е н н я та ф о р м а з а п и с у наведеної мікродії
стає з р о з у м і л о ю .
К о м а н д и в и к о н а н н я о п е р а ц і ї а р и ф м е т и к о логічного п р и с т р о ю типу регістр
регістр.
П р и к л а д о м к о м а н д и т и п у регістр-регістр є к о м а н д а A D D R1,R2,R3. Виконується вка­
зана к о м а н д о ю н а с т у п н а м і к р о д і я
ALUoutput = А ор В.
Тут у з а г а л ь н е н е п о з н а ч е н н я (ор) м о ж н а к о н к р е т и з у в а т и як (add), (sub) тощо, з а л е ж н о
від к о н к р е т н о г о в и д у п о т о ч н о ї к о м а н д и , я к а о п р а ц ь о в у є т ь с я в і н ф о р м а ц і й н о м у тракті
к о м п ' ю т е р а П і д к р е с л и м о , що на попередній щ о д о ЕХ фазі, а саме на фазі ID, до с л у ж б о ­
в и х регістрів у ж е з а в а н т а ж е н о вміст в и б р а н и х регістрів регістрового файла з адресами
R2 і R3. Результат дії п о к и що не з б е р е ж е н о в регістрі R1, але його т и м ч а с о в о з а п и с а н о до
с л у ж б о в о г о регістра ALUoutput.
149

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


посередній о п е р а н д .
П р и к л а д о м к о м а н д и т и п у р е г і с т р - б е з п о с е р е д н і й о п е р а н д є к о м а н д а A D D R1,R2,#23.
Виконується н а с т у п н а мікродія:
ALUoutput = A op Imm.
Ясно, що замість вмісту регістра R3 в о п е р а ц і ї б е р е у ч а с т ь безпосередній о п е р а н д ,
який з у р а х у в а н н я м «знакового» р о з ш и р е н н я до 32-х бітів з ч и т у є т ь с я із с л у ж б о в о г о р е ­
гістра Imm.
Команда у м о в н о г о переходу.
П р и к л а д о м к о м а н д и у м о в н о г о переходу є к о м а н д а B N E Z R5, data. В и к о н у ю т ь с я на­
ступні мікродії:
ALUoutput = N P C + Imm;
C o n d (ition) = (A op 0).
Обидві мікродії є с у м і с н и м и в часі. За д о п о м о г о ю п е р ш о ї мікродії в и р а х о в у є т ь с я ці­
льова адреса у м о в н о г о переходу. П р и ц ь о м у до в ж е в и з н а ч е н о ї а д р е с и н а с т у п н о ї к о м а н ­
ди ( N P C ) , т о б т о такої, я к а р о з т а ш о в а н а б е з п о с е р е д н ь о за к о м а н д о ю у м о в н о г о переходу,
додається к о н с т а н т а зі с л у ж б о в о г о регістра Imm, (саме він м і с т и т ь з н а ч е н н я data). Друга
мікродія в и з н а ч а є ( і с т и н н и м чи х и б н и м ) є з н а ч е н н я у м о в и Condition у м о в н о г о переходу.
Заради ц ь о г о вміст с л у ж б о в о г о регістра А, що є з б і ж н и м із вмістом регістра R5 (у к о м а н -
ді-прикладі), п о р і в н ю є т ь с я на основі операції (ор) з нулем. Згідно з с е м а н т и к о ю к о м а н ­
ди B N E Z о т р и м у є т ь с я , що C o n d = true, коли вміст регістра R5 н е н у л ь о в и й , а б о C o n d =
false, я к щ о регістр R5 м і с т и т ь нуль. Ф і з и ч н о C o n d є о д н о б і т н и м р е г і с т р о м у складі вузла
Zero?
З в е р н е м о увагу н а те, щ о з а р а з с ф о р м о в а н о л и ш е з н а ч е н н я д в о х н е о б х і д н и х елемен­
тів в и к о н а н н я у м о в н о г о переходу, а саме: о д н о б і т н и й код у м о в и C o n d та ц і л ь о в а адре­
са переходу, я к а т и м ч а с о в о зберігається у с л у ж б о в о м у в и х і д н о м у регістрі A L U , т о б т о
в ALUoutput. Б е з п о с е р е д н є в и к о н а н н я у м о в н о г о переходу, що п о л я г а є в п р и р о д н і й (за
чергою) чи н е п р и р о д н і й (коли в и к о н у ю т ь с т р и б о к до цільової адреси) зміні в м і с т у п р о ­
грамного л і ч и л ь н и к а P C , в и к о н у є т ь с я на н а с т у п н і й фазі.

4.2.4.4. Фаза звернення до пам'яті та завершення умовного переходу

З в е р н е н н я до пам'яті.
В рамках ф а з и з в е р н е н н я д о пам'яті M E M в и к о н у ю т ь с я н а с т у п н і мікродії:
L M D = D M [ALUoutput];
DM [ALUoutput] = В.
З в е р н е н н я до п а м ' я т і з а с т о с о в у є т ь с я в к о м а н д а х з а в а н т а ж е н н я ( н а п р и к л а д , LW R6,
112(R3)) та в к о м а н д а х з б е р е ж е н н я ( н а п р и к л а д , SW 112(R3),R6).
Перша мікродія в и к о н у є т ь с я тільки у в и п а д к у к о м а н д и Load ( з а в а н т а ж е н н я ) . Тут за
допомогою п о п е р е д н ь о р о з р а х о в а н о ї адреси п а м ' я т і даних, яка т и м ч а с о в о зберігається
у с л у ж б о в о м у регістрі ALUoutput, з д і й с н ю є т ь с я д о с т у п до п а м ' я т і , що і п о з н а ч е н о за­
писом D M [ALUoutput].
Ф і з и ч н о з пам'яті з а в ж д и з ч и т у є т ь с я 32 біти (або навіть цілі п а к е т и з 32-х бітових
структурних о д и н и ц ь ) . О т р и м а н и й з п а м ' я т і д а н и х б і н а р н и й код т и м ч а с о в о з а в а н т а ж у -
150

ється до ще одного с л у ж б о в о г о регістра L M D (Load M e m o r y Data). І тільки на наступній


фазі W B , я к а п о к и щ о н е р о з г л я д а л а с я , з ч и т а н и й код пересилається з регістра L M D д о
к о н к р е т н о ї к о м і р к и (в н а ш о м у п р и к л а д і - це комірка з адресою R6) регістрового файла.
Друга мікродія р е а л і з у є т ь с я л и ш е при в и к о н а н н і к о м а н д и Store ( з б е р е ж е н н я ) . Тут до
к о м і р к и п а м ' я т і д а н и х за а д р е с о ю , що зберігається в с л у ж б о в о м у регістрі ALUoutput =
(R3) + 112, з а с и л а є т ь с я вміст с л у ж б о в о г о регістра В. П р и ц ь о м у (в наведеному прикладі)
для к о м а н д и SW м а є місце т о т о ж н і с т ь (B)=(R6).
Умовний перехід.
Виконується н а с т у п н а м і к р о д і я :
if (condition) PC = A L U o u t p u t else PC = N P C .
З д і й с н ю є т ь с я п р и р о д н а (cond=0) а б о н е п р и р о д н а (cond =1) заміна вмісту програм­
ного л і ч и л ь н и к а PC з м е т о ю реалізації н а с т у п н о ї за у м о в н и м переходом команди.

4.2.4.5. Фаза зворотного запису

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


н а попередніх фазах, з а п и с у є т ь с я д о деякої к о м і р к и R X регістрового файла. Н а п р и к л а д ,
в R1, я к щ о п о т о ч н о ю є к о м а н д а A D D R1,R2,R3, або в R6 для к о м а н д и LW R6,#112(R3).
Тому вона і м а є н а з в у з в о р о т н о г о з а п и с у (write/back - W B ) .
П о т р і б н о з в е р н у т и увагу, що на цій фазі з м і н ю є т ь с я п р о г р а м н и й стан комп'ютера.
Після її в и к о н а н н я п о н о в л е н н я п о п е р е д н ь о г о с т а н у є н е м о ж л и в и м .
К о м а н д и в и к о н а н н я о п е р а ц і ї а р и ф м е т и к о - л о г і ч н о г о п р и с т р о ю т и п у "регістр-ре-
гістр".
Виконується наступна мікродія:
Regs[IR ]6 J = ALUoutput.
М і к р о д і я зберігає результат операції A L U в регістрі п р и з н а ч е н н я (наприклад, в ре­
гістрі R1 на п р и к л а д і к о м а н д и A D D ) . З р о з у м і л о , що біти 16...20 відповідного ф о р м а т у
к о м а н д и містять б і н а р н и й н о м е р регістра п р и з н а ч е н н я .
К о м а н д и в и к о н а н н я о п е р а ц і ї а р и ф м е т и к о - л о г і ч н о г о п р и с т р о ю типу "регістр-без-
п о с е р е д н і й операнд".
Виконується н а с т у п н а м і к р о д і я :
Regs[IR H 15 ] = ALUoutput.
Ця м і к р о д і я т а к о ж зберігає результат операції, н а п р и к л а д , S U B R5, R4, #1002, в ко­
мірці R5 р е г і с т р о в о г о ф а й л а .
Команда з а в а н т а ж е н н я .
П р и к л а д о м к о м а н д и з а в а н т а ж е н н я є к о м а н д а LW R6,112(R3). Виконується наступна
мікродія:
Regs[IR __ ] = L M D .
11 15

Н а в е д е н а м і к р о к о м а н д а н а д с и л а є до к о м і р к и R6 р е г і с т р о в о г о ф а й л а вміст комірки
п а м ' я т і д а н и х за а д р е с о ю 112 + (R3), яке на попередніх ф а з а х в ж е було в и б р а н е з пам'яті
і т и м ч а с о в о зберігалося в с л у ж б о в о м у регістрі L M D . На ц ь о м у о п и с мікродій керування
р о б о т о ю к о м п ' ю т е р а D L X з а в е р ш е н о . В табл. 4.1. наведено п р и к л а д и алгоритмів в и к о ­
нання команд в комп'ютері D L X .
J5I

Таблиця 4.1
Приклади алгоритмів виконання команд в комп'ютері DLX
Приклад
Алгоритм виконання команди
команди
Арифметичні та логічні команди
ADD R1,R2,R3 Regs[Rl] = Regs[R2) + Regs[R3]
ADDI R1,R2,#3 RegsfRl] = Regs[R2] + 3
LHI R l , #42 Regs[Rl] =42 ##0 16

SLLI R1,R2,#5 Regs[Rl] = Regs[R2} « 5


SLT R l , R2, R3 if (Regs[R2] < Regs[R3]) Regs [Rl] = 1 else Regs[Rl] = 0
Команди збереження й завантаження
LW R l , 30(R2) Regs [Rl] = D M [30 + Regs[R2]]
3 2

LW R l , 1000(R0) Regs [Rl] = ,^ DM [1000 + 0]


LB R l , 40(R3) Regs [Rl] = ( D M [40 + Regs[R3]] ) ## DM [40 + Regs[R3]]
3 2 0
2 4

LBU R l , 40(R3) Regs [Rl] = 0 ## DM [40 + Regs[R3]]


32
24

LH R l , 40(R3) Regs [Rl] = ( D M [40 + Regs[R3]] ) ## DM [40 + Regs[R3]] ## DM [41 + Regs[R3]]


32 0
,6

SW 500(R4), R3 DM[500 + Regs[R4]] = Regs[R3] 32

SH 502(R2), R3 DM[502 + Regs[R2]] = Regs[R3] I6

SB 41(R3), R2 DM[ 41 + Regs[R3]] = „ Regs[R2] „ M

Команди керування програмою


I name PC = name;
((PC + 4) - 2 ) =< name =< ((PC + 4) + 2 );
25 2S

JAL name R31 = PC + 4; PC = name;


((PC + 4) - 2 ) =< name =< ((PC + 4) + 2 );
25 25

JALR R2 Regs[R31] = PC + 4; PC = Regs[R2];


BEQZ R4, name if (Regs[R4] == 0) PC = name;
((PC + 4) - 2 ) =< name =< ((PC + 4) + 2 );
,s 15

BNEZ R4, name if (Regs[R4] != 0) PC = name;


((PC + 4) - 2 ) =< name ='< ((PC + 4) + 2 );
15 15

П о я с н и м о н а прикладі с и н т а к с и с з а п и с у а л г о р и т м і в в и к о н а н н я о к р е м и х м а ш и н н и х
команд к о м п ' ю т е р а DLX (див. т а б л и ц ю 4.1). Розглянемо запис:
г а д і Ш ] ^ = ( П М [ К е [ К 8 ] ] ) ## ВМ [ адяв]].
3 1 6 8 5 0
8

Запис означає наступне. О н о в л ю ю т ь л и ш е 16 м о л о д ш и х ( п р а в и х ) бітів регістра Ш 9 .


До них пересилається д в о б а й т о в и й б і н а р н и й код, в я к о м у м о л о д ш и й п р а в и й байт бе­
реться з пам'яті даних за адресою, що є з б і ж н о ю з в м і с т о м регістра 118. С т а р ш и й
лівий байт у т в о р ю є т ь с я в о с ь м и р а з о в и м п о в т о р ю в а н н я м н у л ь о в о г о (старшого) р о з р я д у
щойно згаданого п р а в о г о байта. П а р о ю с и м в о л і в ## п о з н а ч е н о о п е р а ц і ю конкатенації
(зчеплення) двох байтів до д в о б а й т о в о г о півслова. Н а в е д е н о г о т а б л и ц е ю 4.1 д о с т а т н ь о ,
аби синтезувати неподані а л г о р и т м и в и к о н а н н я і н ш и х к о м а н д к о м п ' ю т е р а ПЬХ.

4 . 2 . 5 . Конвеєрна структура процесора комп'ютера з простою


системою команд

4.2.5.1. Конвеєрний процесор

К о н в е є р н у с т р у к т у р у п р о ц е с о р а к о м п ' ю т е р а з п р о с т о ю системою к о м а н д р о з г л я н е ­
мо на прикладі в и щ е о п и с а н о г о к о м п ' ю т е р а ВІХ. Вище в и к о н а н н я т и п о в о ї к о м а н д и в
комп'ютері ОЬХ було розділено на н а с т у п н і ф а з и :
152

1. I F " - вибірка к о м а н д и (за адресою, з а д а н о ю л і ч и л ь н и к о м команд, із пам'яті зчиту­


ється команда).
2. ID - д е к о д у в а н н я к о м а н д и / в и б і р к а о п е р а н д і в з регістрів.
3. ЕХ - в и к о н а н н я операції та о б ч и с л е н н я е ф е к т и в н о ї адреси пам'яті.
4 . M E M - з в е р н е н н я д о пам'яті.
5. WB - з а п а м ' я т о в у в а н н я результату.
На рис. 4.6 п р е д с т а в л е н а схема п р о ц е с о р а , що в и к о н у є вказані в и щ е фази в и к о н а н н я
к о м а н д без п е р е к р и т т я . Щ о б к о н в е є р и з у в а т и ц ю схему, м о ж н а п р о с т о р о з б и т и в и к о н а н ­
н я к о м а н д н а вказані в и щ е ф а з и , відвівши для в и к о н а н н я к о ж н о ї ф а з и один такт синхро­
нізації, і п о ч и н а т и в к о ж н о м у такті в и к о н а н н я нової к о м а н д и . П р и р о д н о , для зберігання
п р о м і ж н и х результатів к о ж н о ї ф а з и н е о б х і д н о в и к о р и с т о в у в а т и к о н в е є р н і регістри. Н а
рис. 4.9 п о к а з а н а схема п р о ц е с о р а з к о н в е є р н и м и р е г і с т р а м и , які забезпечують переда­
чу д а н и х і к е р у ю ч и х кодів з одного я р у с у к о н в е є р а на н а с т у п н и й . Хоча з а г а л ь н и й час
в и к о н а н н я однієї к о м а н д и в т а к о м у конвеєрі с к л а д а т и м е п ' я т ь тактів, у к о ж н о м у такті
апаратура виконуватиме в суміщеному режимі п'ять різних команд.

Рис. 4.9. Конвеєрна структура процесора комп'ютера DLX (з кеш пам'яттю даних та команд)

К о н в е є р н и й п р о ц е с о р к о м п ' ю т е р а D L X с т р у к т у р о в а н о н а с т у п н и м и ярусами конве­


єра: IF, ID, E X , M E M , W B . А п а р а т у р а к о ж н о г о я р у с у реалізує п р и т а м а н н і ї й мікроопе-
рації. Н а п р и к л а д , на п е р ш о м у ярусі в и к о н у є т ь с я в и б и р а н н я к о м а н д и з пам'яті команд
ІМ за вмістом п р о г р а м н о г о л і ч и л ь н и к а P C , п р и р і с т (інкремент) на +4 (з в р а х у в а н н я м
логічного б а й т о в о г о а д р е с у в а н н я п а м ' я т і к о м а н д ) п о т о ч н о ї адреси за допомогою ком­
б і н а ц і й н о г о с у м а т о р а A D D т а з а н е с е н н я з н а ч е н н я н а с т у п н о ї адреси д о поля N P C (Next
P C ) , і н т е г р о в а н о г о д о к о н в е є р н о г о регістра IF/ID. М у л ь т и п л е к с о р M u x , щ о керується
в і д п о в і д н и м о д н о б і т н и м полем к о н в е є р н о г о регістра Е Х / M E M , в и з н а ч а є джерело з а п и ­
су до N P C - або н а с т у п н а за ч е р г о ю адреса, або ц і л ь о в а адреса у м о в н о г о чи безумовного
переходу. В а ж л и в о , щ о о б о в ' я з о к з м і н ю в а т и п р и р о д н е а д р е с у в а н н я послідовності в и б и ­
р а н н я к о м а н д з п а м ' я т і к о м а н д п о к л а д е н о на вміст к о м а н д и , я к а п р о й ш л а фазу конвеєра
MEM.
153

Конвеєрні регістри в и к о н у ю т ь ф у н к ц і ю з б е р е ж е н н я вмісту і н т е г р о в а н и х д о н и х регі­


стра команди IR, р о б о ч и х регістрів А, В т о щ о . К о н в е є р н і регістри р о з т а ш о в а н о на м е ж а х
ярусів. Вони м а ю т ь назви, відповідні г р а н и ч н и м я р у с а м , н а п р и к л а д IF/ID. Тоді поле А
конвеєрного регістра п о з н а ч а є т ь с я я к Е Х / М Е М . А .
До апаратури другого ярусу ID належать регістровий файл Regs, який містить множину про­
грамно-доступних регістрів, та поширювач знаку Sign extend, що конвертує 16-бітові безпосе­
редні знакові константи у 32-бітові стандартні операнди формату з фіксованою комою.
Апаратура третього ярусу містить комбінаційний A L U із мультиплексорами на кож­
ному вході і схему (Zero?) в и з н а ч е н н я і с т и н н о с т і чи х и б н о с т і у м о в и к о м а н д и у м о в н о г о
переходу.
П р и з н а ч е н н я і н ш и х вузлів є з р о з у м і л и м з рисунка. М о ж н а на додачу з а у в а ж и т и , що
регістровий ф а й л м а є два п о р т и на ч и т а н н я і о д и н на запис. Ця о с о б л и в і с т ь є п р я м и м
наслідком з а п р о в а д ж е н и х в к о м п ' ю т е р і D L X системи к о м а н д і к о н в е є р н о г о п р и н ц и п у
роботи. Регістровий ф а й л Regs п р а ц ю є у к о ж н і й команді на двох ярусах конвеєра - ID (два
читання) та WB (один запис). Означені ф а з и двох різних к о м а н д м о ж у т ь збігатися у часі.
Аби запобігти колізії, потрібна реалізація одночасного ч и т а н н я та подвійного запису до
цього файла. Крім того, необхідно запобігати з а п и с у даних до того ж самого регістра.
Роботу к о н в е є р а м о ж н а у м о в н о п р е д с т а в и т и у вигляді часової діаграми суміщеного
в часі в и к о н а н н я ф а з к о м а н д и , як це було п о к а з а н о раніше, а б о у вигляді з м і щ е н и х в часі
схем т р а к т у д а н и х к о м п ' ю т е р а D L X (рис. 4.10), де к о ж н а схема з о б р а ж а є ту ж с а м у ф а з у
команди. Тут ССі - тактові і н т е р в а л и , IM - п а м ' я т ь к о м а н д , R E G - р е г і с т р о в и й ф а й л ,
A L U - а р и ф м е т и к о логічний п р и с т р і й , D M - п а м ' я т ь даних.
Час (в тактових інтервалах)

Рис. 4.10. Робота конвеєра у вигляді зміщених в часі схем тракту даних

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


Тут перша о п р а ц ь о в а н а к о м а н д а з н а х о д и т ь с я вгорі, о с т а н н я - знизу, СС - т а к т о в и й ін­
тервал. П р о т е частіше для п р е д с т а в л е н н я р о б о т и к о н в е є р а в и к о р и с т о в у ю т ь с я часові діа­
грами (рис. 4.11), на я к и х з а з в и ч а й з о б р а ж а ю т ь с я в и к о н у в а н і к о м а н д и , н о м е р и тактів і
етапи в и к о н а н н я команд.
Номер Номер такту
команди 1 2 3 4 5 6 7 8 9
J IF ID EX MEM WB
754

і+1 ІБ Ш ЕХ МЕМ
і+2 ІБ Ю ЕХ МЕМ
і+3 ІБ ГО ЕХ МЕМ ШВ
і+4 ц> ш ЕХ МЕМ ШВ

Рис. 4.11. Часова діаграма роботи конвеєра

З п р и в е д е н о ї часової діаграми стає з р о з у м і л о , д л я чого потрібні дві незалежні пам'яті


- к о м а н д та даних. Це д о з в о л и т ь на т о м у ж с а м о м у т а к т о в о м у інтервалі без колізії по­
є д н у в а т и в и к о н а н н я ф а з ІБ та М Е М д в о х к о м а н д . П р и цьому, б е з п е р е ч н о , з р о с т а ю т ь ви­
моги до швидкодії з а п а м ' я т о в у ю ч и х п р и с т р о ї в . Такі п р и с т р о ї п о в и н н і відпрацьовувати
з в е р т а н н я за один ц и к л (в н а ш о м у в и п а д к у за один т а к т о в и й імпульс), що обумовлює
р а ц і о н а л ь н і с т ь з а с т о с у в а н н я в і д о к р е м л е н и х кеш п а м ' я т е й к о м а н д та даних.
К о н в е є р и з а ц і я з б і л ь ш у є п р о п у с к н у с п р о м о ж н і с т ь п р о ц е с о р а (кількість в и к о н а н и х
к о м а н д за о д и н и ц ю часу), але в о н а не с к о р о ч у є час в и к о н а н н я окремої команди. На­
справді, в о н а навіть д е щ о з б і л ь ш у є час в и к о н а н н я к о ж н о ї к о м а н д и із-за з а т р и м о к в кон­
в е є р н и х регістрах. П р о т е з б і л ь ш е н н я п р о п у с к н о ї с п р о м о ж н о с т і означає, щ о програма
в и к о н у в а т и м е т ь с я ш в и д ш е п о р і в н я н о зі с к а л я р н о ю (не к о н в е є р н о ю ) схемою.
Той факт, що час в и к о н а н н я к о ж н о ї к о м а н д и в к о н в е є р і не з м е н ш у є т ь с я , накладає
деякі о б м е ж е н н я на п р а к т и ч н у д о в ж и н у к о н в е є р а . О к р і м о б м е ж е н ь , п о в ' я з а н и х із за­
т р и м к о ю к о н в е є р а , є т а к о ж о б м е ж е н н я , що в и н и к а ю т ь в результаті незбалансованості
з а т р и м к и на к о ж н о м у його ярусі та із-за н а к л а д н и х в и т р а т на к о н в е є р и з а ц і ю . Частота
с и н х р о н і з а ц і ї не м о ж е бути в и щ о ю , а, о т ж е , т а к т с и н х р о н і з а ц і ї не м о ж е бути м е н ш и м ,
н і ж час, н е о б х і д н и й для р о б о т и н а й б і л ь ш п о в і л ь н о г о я р у с у конвеєра. Н а к л а д н і витрати
на організацію к о н в е є р а в и н и к а ю т ь через з а т р и м к у сигналів у к о н в е є р н и х регістрах та
із-за перекосів сигналів синхронізації. К о н в е є р н і регістри до т р и в а л о с т і т а к т у додають
час у с т а н о в к и і з а т р и м к у р о з п о в с ю д ж е н н я сигналів.
Я к п р и к л а д р о з г л я н е м о с к а л я р н и й к о м п ' ю т е р і з п ' я т ь м а е т а п а м и в и к о н а н н я опера­
цій, які м а ю т ь т р и в а л і с т ь 50, 50, 60, 50 і 50 не відповідно (рис. 4.12).

200 « з 290 л«

50 50 60 50 50 50 50 60 50 50 50 50 60 50 50

Команда * Команда 2 Команда З


Неконвейерне опрацювання потоку команд
65 65 65 65 65 ля

Команда 1 60 60 60 60 60

Команда 2 60 60 60 60 60

Команда з 60 60 60 60 60

5 5 5 $ 4
Конвлйєрн* опрацювання потоку команд

Рис. 4.12. Конвеєр потоку команд


755

Хай накладні в и т р а т и на організацію к о н в е є р н о ї о б р о б к и складають 5 не. Тоді серед­


ній час в и к о н а н н я к о м а н д и в с к а л я р н о м у п р о ц е с о р і буде р і в н и й 260 не. Я к щ о ж в и к о ­
ристовується к о н в е є р н а організація, т р и в а л і с т ь т а к т у буде рівна т р и в а л о с т і н а й п о в і л ь -
нішої фази о б р о б к и плюс накладні в и т р а т и , т о б т о 65 не. Цей час відповідає с е р е д н ь о м у
часу в и к о н а н н я команди в конвеєрі. Таким ч и н о м , м а є м о ч о т и р и к р а т н е п р и с к о р е н н я ,
одержане в результаті конвеєризації.
К о н в е є р и з а ц і я е ф е к т и в н а тільки тоді, коли з а в а н т а ж е н н я к о н в е є р а б л и з ь к е д о п о в ­
ного, а ш в и д к і с т ь подачі нових к о м а н д і о п е р а н д і в відповідає м а к с и м а л ь н і й п р о д у к т и в ­
ності конвеєра. Я к щ о відбудеться з а т р и м к а , т о п а р а л е л ь н о в и к о н у в а т и м е т ь с я м е н ш е
операцій, і сумарна п р о д у к т и в н і с т ь з н и з и т ь с я . Такі з а т р и м к и м о ж у т ь відбуватися в р е ­
зультаті в и н и к н е н н я к о н ф л і к т н и х с и т у а ц і й . Далі будуть р о з г л я н у т і різні т и п и к о н ф л і к ­
тів, що в и н и к а ю т ь при в и к о н а н н і к о м а н д в конвеєрі, і с п о с о б и їх в и р і ш е н н я . Але с п о ­
чатку р о з г л я н е м о мікродії ярусів в ж е для варіанта к о н в е є р н о г о п р о ц е с о р а .

4.2.5.2. Мікродії ярусів конвеєрного процесора

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


часі та в и к о н у ю т ь с я п а р а л е л ь н о в р а м к а х однієї ф а з и (як п р а в и л о , за один т а к т о в и й ін­
тервал). Мікродії, що р е а л і з у ю т ь с я в к о ж н о м у ярусі к о н в е є р а к о м п ' ю т е р а ОЬХ, зведено
в табл. 4.2.
Таблиця 4.2
Ярус Мікродії в конвеєрі DLX
IF IF/ID.IR *- Mem[ PC ];
IF/ID.NPC, PC *- (if EX/MEM.cond (EX/MEM.NPC} else (PC+4));

ID ID/EX.A *- Regs[IF/ID.IR J; ID/EX.B «- Regs[ IF/ID.IR


6 1 1 1 5 ];
ID/EX.NPC *- IF/ID.NPC; ID/EX.IR *- IF/ID.IR;
ID/EX.Imm *- (IR J ## IR I6..31'
1 6

EX команди АЛП команди читання 1 запису команди переходу


EX/MEM.IR *- ID/EX.IR; EX/MEM.IR *- ID/EX.IR; ЕХ/МЕМ.АЕиоШрШ *-
EX.MEM.ALUutput *- EX/MEM.ALUoutput <- ГО/ЕХ.ИРС + ГО/ЕХ.Ітт;
ID/EX.A op ID/EX.B; ID/EX.A + ID/EX.Imm;
or
EX/MEM.ALUoutput *-
ID/EX. A op ID/EX. Imm; EX/MEM.cond 0; ЕХ/МЕМ.соп<1 *~
E X / M E M . cond *- 0; E X / M E M . В *- ID/EX.B; (ГО/ЕХ.А ор 0);
MEM MEM/WB.IR *~ EX/MEM.IR; MEM/WB.IR EX/MEM.IR; Дій немає
MEM/WB.ALUoutput *- MEM/WB.LMD
EX/MEM.ALUoutput; Mem [EX/MEM. ALUoutput];
or
Mem [EX/MEM.ALUoutput
EX/MEM.B;
WB Regs[MEM/WB.IR J *- 16 Regs[MEM/WB.IR „ *^ Дій немає
MEM/WB.ALUoutput; MEM/WB.LMD;
or
Regs[MEM/WB.IR J *- n

MEM/WB.ALUoutput;
156

Мікродії я р у с у IF.
П е р ш а мікродія в и б и р а є нову к о м а н д у з пам'яті к о м а н д за адресою, що зберігається
в P C , і з а п и с у є її до п о л я IR (Instruction Register) к о н в е є р н о г о регістра IF/ID. В той самий
час друга мікродія з м і н ю є вміст п о л я N P C к о н в е є р н о г о регістра і п р о г р а м н и й лічиль­
н и к за а л г о р и т м о м : я к щ о бітове поле cond (condition - умова) попередньої команди,
я к а п р о й ш л а ф а з у ЕХ, є о д и н и ц е ю (true), тоді п о р у ш у є т ь с я п р и р о д н а черговість і вміст
I F / I D . N P C т а P C о т р и м у є з н а ч е н н я п о л я E X / M E M . N P C к о н в е є р н о г о регістра ЕХ/МЕМ;
і н а к ш е з а п и с у є т ь с я н а с т у п н а адреса ( Р С + 4 ) з в р а х у в а н н я м байтової логічної структури
адреси пам'яті.
Мікродії я р у с у ID.
Усі ч о т и р и мікродії є с у м і с н и м и і в и к о н у ю т ь с я в часі паралельно. П е р ш а мікродія
в и б и р а є п е р ш и й о п е р а н д з п р о г р а м н о к е р о в а н о г о регістра регістрового файла до служ­
б о в о г о регістра А, що є і н т е г р о в а н и м до к о н в е є р н о г о регістра ID/ЕХ. П р и ц ь о м у адреса
п р о г р а м н о к е р о в а н о г о регістра в и з н а ч а є т ь с я вмістом р о з р я д і в 8.. 10 поля IR к о н в е є р н о ­
го регістра IF/1D. Тут в и б и р а є т ь с я о п е р а н д . Такі ж за п р и з н а ч е н н я м дії виконує друга
м і к р о о п е р а ц і я , але з і н ш и м д ж е р е л о м і п р и й м а ч е м . Третя і ч е т в е р т а мікродії зберігають
контекст к о м а н д и , що з н а х о д и т ь с я на п о т о ч н і й сходинці. Це необхідно для її коректного
п р о с у в а н н я к о н в е є р о м . Ч е т в е р т а м і к р о д і я в и б и р а є (та з н а к о в о р о з ш и р ю є з 16 до 32-х
бітів) до с л у ж б о в о г о регістра Imm (immediate - безпосередній) операнд, я к и й містився
у р о з р я д а х 16...31 п о л я IR к о н в е є р н о г о регістра. П о т о ч н у ф а з у ID м о ж н а р о з ш и р и т и у
назві д о д а т к о в и м о з н а ч е н н я м Operand Fetch ( в и б и р а н н я операндів).
М і к р о д і ї ярусу ЕХ (команди а р и ф м е т и к о - л о г і ч н о г о п р и с т р о ю ) .
В а ж л и в о відзначити, що на фазі ЕХ в п е р ш е від п о ч а т к у в и к о н а н н я к о м а н д и має бути
в и з н а ч е н и м її т и п . П е р ш а мікродія зберігає вміст регістра к о м а н д и . Ч е т в е р т а мікродія
з а б о р о н я є к о м а н д а м A L U в п л и в а т и н а послідовність в и б и р а н н я к о м а н д з пам'яті. Друга
і т р е т я мікродії у т в о р ю ю т ь а л ь т е р н а т и в у (або). К о ж н а з н и х в и з н а ч а є пару операндів для
операції ор і п р и ц ь о м у з а п и с у є результат ор до с л у ж б о в о г о ( п р о г р а м н о - н е к е р о в а н о г о )
в и х і д н о г о регістра A L U під н а з в о ю ALUoutput.
М і к р о д і ї я р у с у ЕХ ( к о м а н д и load/store).
П е р ш а м і к р о д і я зберігає к о н т е к с т регістра к о м а н д и , друга вираховує виконавчу
( е ф е к т и в н у ) адресу п а м ' я т і д а н и х на основі бази (Immediate - безпосередній операнд),
т р е т я зберігає вміст с л у ж б о в о г о , п р о г р а м н о - н е к е р о в а н о г о регістра В, четверта з а б о р о ­
н я є п о т о ч н і й команді з м і н ю в а т и п р и р о д н и й п о р я д о к а д р е с у в а н н я команд.
М і к р о д і ї я р у с у ЕХ (команда branch).
П е р ш а мікродія в и р а х о в у є ц і л ь о в у адресу м о ж л и в о г о переходу та зберігає її у р о б о ­
ч о м у ( н е к е р о в а н о м у п р о г р а м і с т о м ) в и х і д н о м у регістрі ALUoutput, а к о н к р е т н о - у полі
ALUoutput к о н в е є р н о г о регістра Е Х / М Е М . Друга мікродія в и р а х о в у є істинне або хибне
з н а ч е н н я логічної у м о в и , що в и з н а ч а є т ь с я п о р і в н я н н я м в деякому, тобто ор розумінні,
с л у ж б о в о г о регістра А, в и з н а ч е н о г о за вмістом на фазі ID, з нулем (дорівнює нулю, не
д о р і в н ю є нулю, т о щ о ) . Логічне з н а ч е н н я у м о в и з а п и с у є т ь с я до поля cond конвеєрного
регістра Е Х / М Е М з м е т о ю д о з в о л у з м і н и п р и р о д н о г о п о р я д к у в и б и р а н н я команд п р о ­
г р а м и , коли cond=l. Контексти н е зберігаються, щ о свідчить п р о н е ф о р м а л ь н е завер­
ш е н н я о п р а ц ю в а н н я цієї к о м а н д и в конвеєрі.
157

Мікродії я р у с у M E M (команди а р и ф м е т и к о логічного п р и с т р о ю ) .


А к т и в н и х мікродій о б р о б к и і н ф о р м а ц і ї немає, щ о свідчить п р о т р а н з и т н и й х а р а к ­
тер о п р а ц ю в а н н я к о м а н д и на цій сходинці. О б и д в і мікродії л и ш е з б е р і г а ю т ь для п о д а л ь ­
шого к о р и с т у в а н н я вміст регістра к о м а н д і вихідного регістра A L U .
Мікродії я р у с у M E M ( к о м а н д и load/store).
Перша мікродія в и к о н у є т р а н з и т н е п е р е с и л а н н я в м і с т у коду операції з відповідного
поля вхідного к о н в е є р н о г о регістра до відповідного п о л я в и х і д н о г о к о н в е є р н о г о регі­
стра ярусу. Це свідчить п р о те, що в и к о н а н н я к о м а н д и ( л и ш е - з а в а н т а ж е н н я ) м а є п р о ­
довжуватися в н а с т у п н о м у ярусі к о н в е є р а . П р и з а в а н т а ж е н н і в и к о н у є т ь с я друга м і к р о ­
дія, а п р и з б е р е ж е н н і - т р е т я . Виконавча ( е ф е к т и в н а ) адреса пам'яті д а н и х в и з н а ч а є т ь с я
вмістом с л у ж б о в о г о вихідного регістра A L U . П р и з а в а н т а ж е н н і вміст к о м і р к и п а м ' я т і
даних зберігається в п р о м і ж н о м у регістрі L M D (Load M e m o r y Data), а при з б е р е ж е н н і
вміст с л у ж б о в о г о регістра В з а п и с у є т ь с я до к о м і р к и п а м ' я т і д а н и х
В а ж л и в о , щ о дана м і к р о п р о г р а м а ігнорує і с н у в а н н я в і д о м о г о п а р а д о к с у пам'яті, щ о
к о р е к т н о тільки за у м о в и в и к о р и с т а н н я кеш п а м ' я т і д а н и х та системи п е р е р и в а н ь у в и ­
падку «невлучення до кеш» ( « п о к а р а н н я » за н е в л у ч е н н я - це п е в н а кількістю д о д а т к о в и х
т а к т о в и х інтервалів, аби погодити ш в и д к о д і ю п р о ц е с о р а і п а м ' я т і д а н и х за рахунок п р и ­
г а л ь м о в у в а н н я операцій в с к а л я р н о м у п р о ц е с о р і ) .
Мікродії ярусу W B (команди а р и ф м е т и к о логічного п р и с т р о ю ) .
З а в ж д и в и к о н у є т ь с я л и ш е одна м і к р о о п е р а ц і я з д в о х з а з н а ч е н и х . В к о ж н о м у в и п а д ­
ку результат о б р о б к и о п е р а н д і в в A L U з п о л я к о н в е є р н о г о регістра M E M / W B . A L U o u t p u t
записується д о регістра р е г і с т р о в о г о ф а й л а п р о ц е с о р а . В и к о р и с т а н н я д в о х м і к р о к о м а н д
замість однієї п о я с н ю є т ь с я т и м , щ о у ф о р м а т і к о м а н д load D L X п о в н о г о д о т р и м а н н я
п р а в и л а «фіксоване р о з т а ш у в а н н я полів» немає. За р а х у н о к ц ь о г о адреса п р и з н а ч е н н я
у ф о р м а т і к о м а н д и рухається: м о ж е в и з н а ч а т и с я р о з р я д а м и 16...20 а б о р о з р я д а м и 11...15
к о м а н д и . Так чи інакше, але в к а з а н а «рухомість» а д р е с и п о л я п р и з н а ч е н н я у с к л а д н ю є
а п а р а т н и й пристрій к е р у в а н н я і м о ж е з м е н ш и т и й о г о ш в и д к о д і ю
Мікродії я р у с у WB (команда load).
З а з н а ч и м о , що к о м а н д а store ( з б е р е ж е н н я ) на ц ь о м у ярусі в и к о н а н н я не п о т р е б у є
мікродій. Тут з а в е р ш у є т ь с я в и к о н а н н я л и ш е к о м а н д и з а в а н т а ж е н н я о п е р а н д а з к о м і р к и
пам'яті даних до регістра р е г і с т р о в о г о ф а й л а п р о ц е с о р а
Операнд зберігається у полі L M D вхідного к о н в е є р н о г о регістра M E M / W B , а адреса ко­
мірки (регістра) регістрового файла міститься у полі M E M / W B . I R 11...І5. Важливо, що ре­
гістровий файл повинен реалізувати два порти, а саме, два п о р т и на ч и т а н н я та один порт
на запис. П р и цьому, я к щ о дві адреси на ч и т а н н я постачає к о н в е є р н и й регістр (IF/ID), то
адресу на запис і дані постачає щ о й н о р о з г л я н у т и й к о н в е є р н и й регістр ( M E M / W B ) .

4.3. Суперконвеєрні процесори


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

IF1 IF2 ID1 ID2 Е Х 1 Е Х 2 М Е 1 М Е 2 WB1 W B 2 IF1 IF2 ID1 ID2 Е Х 1 Е Х 2 М Е 1 М Е 2 W B 1 W B 2

Рис. 4.13. Послідовне виконання однойменних фаз двох команд


158

Такий підхід не п р и с к о р ю є р о б о т у п р о ц е с о р а , але при к о н в е є р н о м у о п р а ц ю в а н н і ко­


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

IF1 IF2 ID1 ID2 Е Х 1 Е Х 2 М Е 1 М Е 2 W B 1 W B 2

IF1 IF2 ID1 ID2 Е Х 1 Е Х 2 М Е 1 М Е 2 W B 1 W B 2

IF1 IF2 ID1 ID2 Е Х 1 Е Х 2 М Е 1 М Е 2 W B 1 W B 2

IF1 IF2 ID1 ID2 Е Х 1 Е Х 2 М Е 1 М Е 2 W B 1 W B 2

IF1 IF2 ID1 ID2 Е Х 1 Е Х 2 М Е 1 М Е 2 W B 1 W B 2

Рис. 4.14. Діаграма виконання команди в суперконвеєрному процесорі


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

Як в и д н о з п р и в е д е н о ї на рис. 4.14 діаграми, п р и п о с л і д о в н о м у в и к о н а н н і фаз двох


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

4.4. Суперскалярні процесори


Вище була р о з г л я н у т а к о н в е є р н а с т р у к т у р а п р о ц е с о р а , коли з а с о б и в и к о н а н н я яру­
сів п о т о к о в о г о г р а ф а а л г о р и т м у р о з д і л я ю т ь с я к о н в е є р н и м и регістрами. Щоб підви­
щ и т и п р о д у к т и в н і с т ь к о н в е є р н о г о п р о ц е с о р а п о т р і б н о далі с п р о щ у в а т и операції його
ярусів та п о г л и б л ю в а т и г л и б и н у к о н в е є р а . Це і р о б и т ь с я в сучасних процесорах, в я к и х
г л и б и н а к о н в е є р а д о с я г а є д в а д ц я т и і більше ярусів. Н а п р и к л а д , п р о ц е с о р комп'ютера
U l t r a S P A R C III м а є 10 ярусів к о н в е є р а , а п р о ц е с о р к о м п ' ю т е р а Pentium IV - 20 ярусів
к о н в е є р а . О д н а к п р о ц е с с п р о щ е н н я о п е р а ц і й ярусів к о н в е є р а м а є межу, коли операції не
піддаються поділу. Н а п р и к л а д , ф а з а в и б і р к и к о м а н д и з п а м ' я т і не м о ж е бути поділеною
на п р о с т і ш і ф а з и . Тоді для п і д в и щ е н н я п р о д у к т и в н о с т і п р о ц е с о р а необхідно в и к о р и с т о ­
вувати п а р а л е л ь н е в к л ю ч е н н я декількох к о н в е є р і в команд. Такі п р о ц е с о р и з декількома
к о н в е є р а м и к о м а н д д о з в о л я ю т ь о д н о ч а с н о в и к о н у в а т и кілька с к а л я р н и х команд, а тому
дістали н а з в у с у п е р с к а л я р н и х .
П е р ш у с у п е р с к а л я р н у архітектуру р о з р о б и в Д ж о н Коук (John Cocke, I B M , 1987 рік),
що о т р и м а л а н а з в у America. Він і з а п р о п о н у в а в термін "суперскаляр". Вже потім моди­
ф і к о в а н и й варіант а р х і т е к т у р и America під н а з в о ю P O W E R - 1 (Performance Optimizati­
on W i t h Enhanced RISC) в п р о в а д и л и до серійних систем RISC System/6000 фірми I B M .
759

Нарешті, п і д м н о ж и н у архітектури P O W E R - 1 р е а л і з о в а н о в п р о ц е с о р а х Power P C , які є


основою комп'ютерів Apple Macintosh. І н ш и м и п р и к л а д а м и с у п е р с к а л я р н и х п р о ц е с о р і в
є процесори систем UltraSparc ф і р м и Sun та A l p h a ф і р м и D E C .
С т р у к т у р а с у п е р с к а л я р н о г о п р о ц е с о р а та його з в ' я з к и з кеш п а м ' я т т ю даних і ко­
манд, показані на рис. 4.15.

Блок вибірки команд Кеш пам'ять команд

Блок декодування команд


та регістрова пам'ять

Блок виконання команд

Блок диспетчеризації даних Кеш пам'ять даних

Рис. 4.15. Структура суперскалярного процесора

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


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

IF ID EX ME WB IF1 IF2 ID1 ID2 EX1 EX2 ME1 ME2 WB1 WB2

IF ID EX ME WB IF1 IF2 ID1 ID2 EX1 EX2 ME1 ME2IWB1WB2

IF ID EX ME WB IF1 IF2 ID1 ID2 EX1 EX2 ME1 ME2 WB1 WBS

IF ID EX ME WB IF1 !F2 ID1 ID2 EX1 EX2 ME1 ME2 WB1 WB2

IF ID EX ME WB IF1 IF2 ID1 ID2 EX1 EX2 ME1 ME2 WB1 WB2

IF ID EX ME WB IF1 IF2 ID1 ID2 EX1 EX2 ME1 ME2 WB1 WB2

IF ID EX ME WB IF1 IF2 ID1 ID2 EX1 EX2 ME1 ME2 WB1 WB2

IF ID EX ME WB IF1 IF2 ID1 ID2 EX1 EX2 ME1 ME2 WB1 WB2

а) Ь)

Рис. 4.16. Діаграма виконання команд в суперскалярному процесорі з двома конвеєрами команд, коли
в одному такті виконується одна (а) та дві (Ь) фази команди
160

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

4.5. Процесор векторного комп'ютера


Вище були р о з г л я н у т і скалярні та с у п е р с к а л я р н і п р о ц е с о р и , в я к и х операції викону­
ються над с к а л я р н и м и д а н и м и . О д н а к існує значна кількість завдань, коли о п р а ц ю в а н ­
ню за о д н и м и п р о ц е д у р а м и п і д л я г а ю т ь великі м а с и в и (вектори) даних. У ц ь о м у в и п а д к у
в и г л я д а є д о ц і л ь н и м р о з г л я д м о ж л и в о с т і м о д и ф і к а ц і ї к о м п ' ю т е р а під в и к о н а н н я цього
класу з а в д а н ь . До ц и х пір така м о д и ф і к а ц і я з д і й с н ю в а л а с ь в п о т у ж н и х комп'ютерах, але
на д а н и й час в о н а п о ч а л а п о ш и р ю в а т и с ь на всі т и п и к о м п ' ю т е р і в . Відповідно комп'юте­
ри, о р і є н т о в а н і на о п р а ц ю в а н н я в е к т о р і в даних, дістали назву векторних.
Різницю м і ж в и к о н а н н я м скалярної та векторної операції наглядно відображає рис. 4.17,
з я к о г о в и д н о , що с к а л я р н а о п е р а ц і я п е р е д б а ч а є в и к о н а н н я д о д а в а н н я над д в о м а д а н и ­
м и , тоді як в е к т о р н а - над д в о м а в е к т о р а м и даних.

SCALAR VECTOR
(1 operation) (N operations)

add г З , r l , r2 add . vv v3 , v l , v2

Рис. 4.17. Виконання скалярної ma векторної операцій додавання

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


п р о г р а м и із с к а л я р н и м и і в е к т о р н и м и к о д а м и . З а п и ш е м о п р о г р а м у о б ч и с л е н н я виразу
У= а * X + У, де У, X - в е к т о р и , а а - с к а л я р . Н е х а й в е к т о р и м а ю т ь д о в ж и н у по 64 елемен­
ти. Векторна п р о г р а м а м а є в и г л я д :

LD F0, а ; load scalar a


LV V I , Rx ; load vector X
MULTS V2, F0, V I ; vector-scalar mult.
LV V3,Ry ; load vector Y
ADDV V4, V2, V3 ;add
SV Ry, V4 ; store vector

Відповідна с к а л я р н а п р о г р а м а м а є вигляд:
767

LD F0,a
ADDI R4,Rx,#512 ; last address to
load
Loop:
LD F2,0(Rx) ; load X(l)
M U L T D F2,F0,F2 ; a*X(l)
LD F4, 0(Ry) ; load Y(l)
ADDD F4.F2.F4 ; a*X(l)+Y(l)
SD F4,0(Ry) ; store into Y(l)
ADDI Rx,Rx,#8 ; increment index
ADDI Ry,Ry,#8 ; increment index
SUB R20,R4,Rx ; compute bound
BNZ R20, loop ; check if done

У скалярній п р о г р а м і к у р с и в о м п о з н а ч е н о з а л е ж н о с т і , я к и х немає у в е к т о р н о м у ва­


ріанті п р о г р а м и . О б и д в а варіанти п р о г р а м и м о ж н а п о р і в н я т и з а н а с т у п н и м и кількісни­
ми х а р а к т е р и с т и к а м и :
1. За кількістю о п е р а ц і й : 578(2+9*64) п р о т и 321 (1 +5*64); кількість о п е р а ц і й у в е к т о р ­
ній програмі з м е н ш е н о в 1,8 разу.
2. За кількістю команд: 578(2+9*64) п р о т и 6-ти к о м а н д у в е к т о р н і й програмі; пере­
вага в 96 разів.
В таблиці 4.3 наведені х а р а к т е р и с т и к и кількох п р о м и с л о в и х в е к т о р н и х к о м п ' ю т е р і в ,
з якої в и д н о доцільність 'їх с т в о р е н н я з огляду на д о с я г н у т у п р о д у к т и в н і с т ь .
Таблиця 4.3

Кількість Кількість Продуктив


Тип Рік Частота, Кількість Кількість
пристроїв пристроїв ність
машини випуску MHz регістрів елементів
float point load/store (MFLOFS)

Cray-1 1976 80 8 64 6 1 160


Cray ХМР 1983 120 8 64 8 2L, IS 940
Cray Y M P 1988 166 8 64 8 2L, IS 2667
Cray C-90 1991 240 8 128 8 4 15238(16)
Cray T-90 1996 455 8 128 8 4 57600(32)
Conv. C - l 1984 10 8 128 4 1 20(1)
Conv. C-4 1994 133 16 128 3 1 3240(4)
Fuj. VP200 1982 133 8-256 32-1024 3 2 533(1)
Fuj. VP300 1996 100 8-256 32-1024 3 2 N/A
NEC SX/2 1984 160 8 + 8К 256 + var 16 8 1300(1)
NEC SX/3 1995 400 8 + 8К 256 + var 16 8 25600(4)

Таким ч и н о м , п р о ц е с о р и в е к т о р н и х к о м п ' ю т е р і в в и к о н у ю т ь к о м а н д и над в е к т о р а ­


ми даних. С т р у к т у р а цих п р о ц е с о р і в за с к л а д о м та з в ' я з к а м и п о в т о р ю є в ж е р о з г л я н у т і
вище с т р у к т у р и п р о ц е с о р і в , т о б т о це м о ж у т ь б у т и п р о ц е с о р и в е к т о р н и х к о м п ' ю т е р і в із
162

с к л а д н о ю та п р о с т о ю системою к о м а н д , к о н в е є р н і та с у п е р к о н в е є р н і , а т а к о ж процесори
с у п е р в е к т о р н и х к о м п ' ю т е р і в , коли в п р о ц е с о р і є декілька конвеєрів команд. Основна їх
відмінність - з а б е з п е ч е н н я о д н о ч а с н о г о в и к о н а н н я однієї к о м а н д и над в е к т о р о м даних.
Це, з о к р е м а , д о з в о л я є будувати їх б л о к и в и к о н а н н я к о м а н д за к о н в е є р н и м п р и н ц и п о м і
п р и ц ь о м у п о з б у т и с я конфліктів, які с у т т є в о г а л ь м у ю т ь р о б о т у конвеєра ч и ускладню­
ють й о г о структуру.
Для в и я с н е н н я б а з о в и х п р и н ц и п і в п о б у д о в и п р о ц е с о р і в в е к т о р н и х комп'ютерів роз­
г л я н е м о с т р у к т у р у та систему к о м а н д п р о ц е с о р а в е к т о р н о г о варіанта комп'ютера БЬХ,
а саме к о м п ' ю т е р а ЭЬХУ. До с к л а д у п р о ц е с о р а , с т р у к т у р а якого приведена на рис. 4.18,
в х о д я т ь п р и с т р і й в е к т о р н о г о ч и т а н н я запису, регістрові ф а й л и з в е к т о р н и м и та ска­
л я р н и м и р е г і с т р а м и , а т а к о ж о п е р а ц і й н и й п р и с т р і й з н а б о р о м к о н в е є р н и х операційних
п р и с т р о ї в д о д а в а н н я , м н о ж е н н я та д і л е н н я з р у х о м о ю комою та в и к о н а н н я а р и ф м е т и ч ­
н и х і логічних о п е р а ц і й над ц і л и м и ч и с л а м и .
Конвеєрні операційні п р и с т р о ї

,элаваннр з рухом сю к о м о

Г/нохсння з р у х о м о ю к о м о ю

Д і л е н н я з р у х о м о ю комою

ераші над цілими числами!

Логічні сперацТ

Рис. 4.18. Структура процесора комп'ютера DLXV

Цей к о м п ' ю т е р м а є в е к т о р н і к о м а н д и , які наведено в табл. 4.4.


Таблиця 4.4
Команда Операнди Операція Коментар
ADDV V1.V2.V3 V1=V2+V3 VECTOR+VECTOR
ADDSV V1.F0.V2 V1=F0+V2 SCALAR+VECTOR
MULTV V1.V2.V3 Vl=V2xV3 VECTORxVECTOR
MULSV V I , F0.V2 V1=F0XV2 SCALAR x VECTOR
LV VI, Rl Vl=M[Rl..Rl+63] LOAD, STRIDE=1
LVWS V1.R1.R2 V1=[R1..R1+63*R2] LOAD, STRIDE=R2
LVI V1.R1.V2 V1=[R1+V2i,i=0..63 indirect ("gather")
CeqV VM.V1.V2 V M A S K i = ( V l I=V2I) comp. Set mask
MOV VLR.Rl Vec. Len. Reg = R l set vector length
MOV V M , Rl Vec. Mask=Rl set vector mask

П р и в е д е н и й п р о ц е с о р є п р о ц е с о р о м к о м п ' ю т е р а з п р о с т о ю системою команд. До


ц ь о г о т и п у н а л е ж а т ь усі в е к т о р н і с у п е р к о м п ' ю т е р и : Cray, Convex, Fujitsu, Hitachi, N E C .
163

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


пам'ять», коли всі векторні операції є о п е р а ц і я м и т и п у п а м ' я т ь - п а м ' я т ь н а п р и к л а д ,
CDC-6600.
Подібно до приведеного на рис. 4.18, п р о ц е с о р и в е к т о р н и х к о м п ' ю т е р і в містять на­
ступні основні к о м п о н е н т и
• Векторні регістри; це регістрий ф а й л ф і к с о в а н о ї є м н о с т і що в м і щ у є в е к т о р даних.
Цей файл має як м і н і м у м 2 п о р т и на ч и т а н н я і один п о р т на з а п и с та з а з в и ч а й в к л ю ч а є
8-32 в е к т о р н и х регістри, к о ж н и й з я к и х є 6 4 - 1 2 8 - р о з р я д н и м
• Конвеєрні о п е р а ц і й н і пристрої. З а з в и ч а й з а с т о с о в у ю т ь 4-8 о п е р а ц і й н и х п р и с т р о ­
їв, а саме: д о д а в а н н я , м н о ж е н н я і ділення з ф і к с о в а н о ю та р у х о м о ю к о м о ю , з с у в у т о щ о
• Векторний вузол ч и т а н н я - з а п и с у , т а к о ж к о н в е є р н и й , я к и й о п р а ц ь о в у є в е к т о р и да­
них. Водночас з а с т о с о в у ю т ь декілька т а к и х вузлів
• С к а л я р н і регістри, які містять один с к а л я р з р у х о м о ю комою або адресу
• Б а г а т о ш и н н і магістралі або к о м у т а ц і й н і м е р е ж і , які з ' є д н у ю т ь м і ж с о б о ю всі з а з н а ­
чені к о м п о н е н т и , аби п р и с к о р и т и р о б о т у п р о ц е с о р а в ц і л о м у
Перші векторні к о м п ' ю т е р и STAR-100 ф і р м и C D C та A S C ф і р м и ТІ були с т в о р е н і в
1972 році. Це були в е к т о р н і к о м п ' ю т е р и з а р х і т е к т у р о ю т и п у п а м ' я т ь - п а м ' я т ь
Значний внесок в теорію побудови в е к т о р н и х к о м п ' ю т е р і в з р о б и в в и д а т н и й а м е р и ­
канський к о н с т р у к т о р в е к т о р н и х с у п е р к о м п ' ю т е р і в С е й м у р Крей. На рис. 4.19 з о б р а ж е ­
но його п е р ш и й в е к т о р н и й с у п е р к о м п ' ю т е р Сгау-1 та в е к т о р н і с у п е р к о м п ' ю т е р и Сгау-2
і Cray-YMP.

Рис. 4.19. Векторні суперкомп'ютери Сгау-1, Сгау-2 і Cray-YMP

Комп'ютер C R A Y - 1 був с т в о р е н и й в 1976 році і м а в архітектуру т и п у «регістр-ре-


гістр», тому він був н а й ш в и д ш и м серед в е к т о р н и х та с к а л я р н и х к о м п ' ю т е р і в свого часу.
В 1981 році на р и н к у з ' я в и в с я з н а ч н о п о т у ж н і ш и й в е к т о р н и й к о м п ' ю т е р C Y B E R - 2 0 5 ф і р ­
ми C D C з тією ж б а з о в о ю архітектурою, що і STAR-100, але більшою кількістю в е к т о р ­
них ф у н к ц і о н а л ь н и х блоків. Це були векторні к о м п ' ю т е р и з а р х і т е к т у р о ю т и п у " п а м ' я т ь -
пам'ять". В 1983 році фірма Cray Research п о с т а в и л а на р и н о к в е к т о р н и й с у п е р к о м п ' ю т е р
C R A Y Х-МР, а через кілька р о к і в - C R A Y - 2 , я к и й м а в в и щ у т а к т о в у ч а с т о т у та іще біль­
ший рівень конвеєризації. В 1988 році фірма Cray Research с т в о р и л а з н а ч н о ш в и д ш и й ,
ніж Х - М Р с у п е р к о м п ' ю т е р C R A Y Y - M P , к о т р и й мав 8 к о н в е є р н и х п р о ц е с о р і в , к о ж н и й з
яких п р а ц ю в а в з тактом 6 не.
Одночасно п о т у ж н і векторні с у п е р к о м п ' ю т е р и п о ч а л и с т в о р ю в а т и с ь і в і н ш и х дер­
жавах. Зокрема, в середині 80-х років в Японії були с т в о р е н і с у п е р к о м п ' ю т е р и Fujitsu
164

VP100 і VP200, за н и м и Hitachi S810 і N E C S X / 2 , які за т е х н і ч н и м и х а р а к т е р и с т и к а м и не


п о с т у п а л и с я к о м п ' ю т е р а м ф і р м и Cray Research
П р о т я г о м н а с т у п н и х 20 років векторні к о м п ' ю т е р и м а л и ш в и д к и й р о з в и т о к і з екзо­
т и ч н и х п е р е т в о р и л и с ь в ш и р о к о в ж и в а н и й клас п о т у ж н и х комп'ютерів.

4.6. Класифікація архітектури комп'ютера за рівнем суміщення


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

4.7. Короткий зміст розділу


Р о з г л я н у т о місце п р о ц е с о р а в комп'ютері, його ф у н к ц і ї та склад. Приведена одно-
ш и н н а с т р у к т у р а п р о ц е с о р а к о м п ' ю т е р а із с к л а д н о ю системою к о м а н д та розглянуто
в и к о н а н н я на ній о с н о в н и х операцій п р о ц е с о р а : вибірки слова із пам'яті, запам'ятову­
в а н н я слова в пам'яті, о б м і н у м і ж регістрами, в и к о н а н н я а р и ф м е т и ч н и х і логічних опе­
рацій. П р о в е д е н о п о р і в н я н н я о д н о ш и н н о ї з б а г а т о ш и н н о ю с т р у к т у р о ю п р о ц е с о р а
Виділено о с о б л и в о с т і п о б у д о в и п р о ц е с о р а к о м п ' ю т е р а із складною системою команд
та с ф о р м о в а н о в и м о г и до п р о ц е с о р а к о м п ' ю т е р а з п р о с т о ю системою команд. Описані
базові п р и н ц и п и п о б у д о в и п р о ц е с о р а к о м п ' ю т е р а з п р о с т о ю системою команд, а також
в з а є м о д і я п р о ц е с о р а з о с н о в н о ю п а м ' я т т ю в к о м п ' ю т е р і з п р о с т о ю системою команд
Р о з г л я н у т о ф а з и в и к о н а н н я к о м а н д в п р о ц е с о р і к о м п ' ю т е р а з п р о с т о ю системою ко­
манд: в и б и р а н н я т а д е к о д у в а н н я к о м а н д и , в и к о н а н н я т а ф о р м у в а н н я ефективної адре­
си, з в е р н е н н я до п а м ' я т і / з а в е р ш е н н я у м о в н о г о переходу, з в о р о т н о г о запису. Описана
к о н в е є р н а с т р у к т у р а п р о ц е с о р а з п р о с т о ю системою к о м а н д на прикладі процесора
к о м п ' ю т е р а D L X . Р о з г л я н у т о п р и н ц и п и побудови с у п е р к о н в е є р н и м т а суперскалярних
п р о ц е с о р і в , а т а к о ж п р о ц е с о р і в в е к т о р н и х к о м п ' ю т е р і в . Виходячи з вищенаведеного
р о з г л я д у різних п р и н ц и п і в п о б у д о в и п р о ц е с о р і в , з р о б л е н о класифікацію архітектури
к о м п ' ю т е р а за рівнем с у м і щ е н н я в н ь о м у о п р а ц ю в а н н я к о м а н д та даних.
165

4.8. Література для подальшого читання


П и т а н н я побудови п р о ц е с о р і в к о м п ' ю т е р і в з складною системою к о м а н д д е т а л ь н о
розглянуті в багатьох п і д р у ч н и к а х та н а у к о в и х п р а ц я х , з о к р е м а [1-4, 7, 8]. Вимоги до
процесора к о м п ' ю т е р а з п р о с т о ю системою к о м а н д та базові п р и н ц и п и його п о б у д о ­
ви детально описані в р о б о т а х [5, 6]. Там же, а т а к о ж в р о б о т а х [7-8] з а п р о п о н о в а н о
принципи побудови п р о ц е с о р а к о м п ' ю т е р а D L X і п р о ц е с о р а в е к т о р н и х к о м п ' ю т е р і в , а
в роботах [9-10] р о з г л я н у т і п р и н ц и п и п о б у д о в и с у п е р к о н в е є р н и м та с у п е р с к а л я р н и х
процесорів.

4.9. Література до розділу 4


1. Каган Б.М. Электронные вычислительные машины и системы. - М.: Энергия, 1979. - 528 с.
2. Каган Б. М., Каневский М. М. Цифровые вычислительные машины и системы. - М.: Энер­
гия, 1974. - 680 с.
3. Tanenbaum, A. Structured Computer Organization, 4 ed. Upper Saddle River, N J: Prentice Hall,
th T

1999.
4. Stallings, W. Computer Organization and Architecture, 5th ed., New York, NY: Macmillan Publis­
hing Company, 2000.
5. D. Patterson, J. Hennessy. Computer Architecture. A Quantitative Approach. Morgan Kaufmann
Publishers, Inc. 1996.
6. Patterson, D. A., 8c Hennessy, J. L. Computer Organization and Design, The Hardware/Software
Interface, 2nd ed., San Mateo, С A: Morgan Kaufmann, 1997.
7. AGERWALA, T. A N D J. C O C K E [1987]. "High performance reduced instruction set processors",
IBM Tech. Rep. (March).
8. Bakoglu, H. В., G. F. Grohoski, L E. Thatcher, J. A. Kahle, С R. Moore, D. P. Tuttle, W. E. Maule,
W. R. Hardell, D. A. Hicks, M. Nguyen phu, R. K. Montoye, W. T. Glover, and S. Dhawan [1989]. «ІВМ
second-generation RISC processor organization,» Proc. Int'l Conf. on Computer Design, IEEE (Octob­
er), Rye, N.Y., 138-142.
9. Johnson, M. [1990]. Superscalar Microprocessor Design, Prentice Hall, Englewood Cliffs, N.J.
10. JOUPPI, N. P. A N D D. W. W A L L [1989]. "Available instruction-level parallelism for superscalar
and superpipelined processors", Proc. Third Conf. on Architectural Support for Programming Languages
and Operating Systems, I E E E / A C M (April), Boston, 272-282.

4.10. Питання до розділу 4


1. Місце процесора в комп'ютері та його функції.
2. Що таке командний цикл?
3. Дві основні фази командного циклу.
4. Основні вузли процесора.
5. Одношинна структура процесора комп'ютера із складною системою команд і його зв'язки з
іншими пристроями комп'ютера.
6. Виконання процесором операції "Вибірка слова з пам'яті".
7. Виконання процесором операції "Запам'ятовування слова в пам'яті".
8. Виконання процесором операції обміну між регістрами.
9. Виконання процесором арифметичних і логічних операцій.
10. Порівняння одношинної та багатошинної структур процесора комп'ютера із складною
системою команд.
766

11. Чому в процесорі комп'ютера із складною системою команд команда виконується за ба­
гато тактів?
12. Чому в процесорі комп'ютера із складною системою команд потрібна складна система
розпізнавання команди?
13. Чому в процесорі комп'ютера із складною системою команд організація конвеєризації ви­
конання команд складніша, ніж у процесорі комп'ютера з простою системою команд?
14. Основні вимоги до процесора комп'ютера з простою системою команд.
15. Сформуйте правила вибору системи команд комп'ютера з простою системою команд.
16. Чому в системі команд комп'ютера з простою системою команд відносно небагато опера­
цій та способів адресації?
17. Чому в комп'ютері з простою системою команд команди обробки даних мають реалізува­
тися лише у формі "регістр-регістр"?
18. Чому в комп'ютері з простою системою команд обміни з основною пам'яттю виконуються
лише за допомогою команд завантаження/запису?
19. Чому в процесорі комп'ютера з простою системою команд дешифрування команд із спро­
щеними форматами має виконуватися лише апаратно?
20. Що є основою проектування структури процесора комп'ютера з простою системою ко­
манд?
21. Як будується процесор для того, щоб команда виконувалася за один такт?
22. Поясніть принципи роботи процесора комп'ютера DLX.
23. Опишіть фази виконання команди в процесорі комп'ютера D L X .
24. Поясніть роботу конвеєрного процесора комп'ютера D L X .
25. Проаналізуйте та поясніть мікродії, що виконуються на сходинці IF конвеєра комп'ютера
DLX.
26. Проаналізуйте та поясніть мікродії, що виконуються на сходинці ID конвеєра комп'ютера
DLX.
27. Проаналізуйте та поясніть мікродії, що виконуються на сходинці ЕХ конвеєра комп'ютера
D L X при виконанні команди АЛП.
28. Проаналізуйте та поясніть мікродії, що виконуються на сходинці ЕХ конвеєра комп'ютера
D L X при виконанні команд завантаження і збереження (load/store).
29. Проаналізуйте та поясніть мікродії, що виконуються на сходинці ЕХ конвеєра комп'ютера
D L X при виконанні команди умовного переходу (branch).
30. Проаналізуйте та поясніть мікродії, що виконуються на сходинці M E M конвеєра комп'ю­
тера D L X при виконанні команд АЛП.
31. Проаналізуйте та поясніть мікродії, що виконуються на сходинці M E M конвеєра комп'ю­
тера D L X при виконанні команд завантаження або збереження.
32. Проаналізуйте та поясніть мікродії, що виконуються на сходинці WB конвеєра комп'ю­
тера D L X при виконанні команд АЛП.
33. Проаналізуйте та поясніть мікродії, що виконуються на сходинці WB конвеєра комп'ю­
тера D L X при виконанні команди load.
34. Основна ідея суперконвеєрних процесорів.
35. Суперскалярні процесори - структура та принцип роботи.
36. Процесори векторних комп'ютерів - структура та принцип роботи.
37. Наведіть класифікацію архітектури комп'ютера за рівнем суміщення в ньому опрацю­
вання команд та даних.
Розділ 5

Запшшштя/ конфліктам/ & кші&еєрі команд


У п о п е р е д н ь о м у розділі були р о з г л я н у т і с т р у к т у р и п р о ц е с о р а , які з а б е з п е ч у ю т ь су­
міщений в часі режихМ в и к о н а н н я кількох команд, коли в о н и є н е з а л е ж н и м и одна від
одної. Це с у м і щ е н н я н а з и в а є т ь с я к о н в е є р н и м в и к о н а н н я м к о м а н д . У д а н о м у розділі
буде р о з г л я н у т о р я д методів п і д в и щ е н н я е ф е к т и в н о с т і к о н в е є р н о г о в и к о н а н н я к о м а н д .
Потреба в ц ь о м у в и к л и к а н а т и м , що п р и реалізації к о н в е є р н о г о в и к о н а н н я к о м а н д в и ­
н и к а ю т ь ситуації, які п е р е ш к о д ж а ю т ь в и к о н а н н ю чергової к о м а н д и з п о т о к у к о м а н д в
призначеному для неї такті. Такі ситуації н а з и в а ю т ь с я к о н ф л і к т а м и , або р и з и к а м и . К о н ­
флікти з н и ж у ю т ь п р о д у к т и в н і с т ь к о н в е є р а , яка могла б б у т и д о с я г н у т а в і д е а л ь н о м у
випадку. Більше того, конфлікти м о ж у т ь звести н а н і в е ц ь всі з а т р а т и на с т в о р е н н я кон­
веєра команд.
Існує т р и класи конфліктів:
• С т р у к т у р н і к о н ф л і к т и , які в и н и к а ю т ь з п р и ч и н и б р а к у ресурсів, коли апаратні
засоби не м о ж у т ь п і д т р и м у в а т и всі м о ж л и в і комбінації к о м а н д в р е ж и м і одночасного
виконання з перекриттям.
• Конфлікти за д а н и м и , що в и н и к а ю т ь у разі, коли в и к о н а н н я наступної к о м а н д и
залежить від результату в и к о н а н н я п о п е р е д н ь о ї к о м а н д и .
• Конфлікти к е р у в а н н я , які в и н и к а ю т ь при к о н в е є р и з а ц і ї к о м а н д передачі керу­
вання, які з м і н ю ю т ь з н а ч е н н я л і ч и л ь н и к а к о м а н д .
Конфлікти в конвеєрі п р и з в о д я т ь до необхідності п р и з у п и н е н н я в и к о н а н н я к о м а н д .
З в и ч а й н о , я к щ о п р и з у п и н я є т ь с я в и к о н а н н я якої-небудь к о м а н д и в конвеєрі, то в и к о ­
нання всіх н а с т у п н и х за нею к о м а н д т а к о ж п р и з у п и н я є т ь с я і, з р о з у м і л о , під час п р и з у ­
п и н е н н я н е в и б и р а є т ь с я ж о д н а нова команда. П р и ц ь о м у к о м а н д и , передуючі п р и з у п и ­
неній, м о ж у т ь п р о д о в ж у в а т и в и к о н у в а т и с я .
С п о ч а т к у будуть р о з г л я н у т і м е т о д и , щ о д о з в о л я ю т ь з н и з и т и в п л и в с т р у к т у р н и х
конфліктів, а т а к о ж конфліктів за д а н и м и та конфліктів к е р у в а н н я , а потім п и т а н н я
р о з ш и р е н н я м о ж л и в о с т е й к о м п ' ю т е р а по в и к о р и с т а н н ю паралелізму, з а к л а д е н о г о в
програмах. Далі буде п р о в е д е н о аналіз сучасних технологій к о м п і л я т о р і в , які в и к о р и с ­
товуються для з б і л ь ш е н н я с т у п е н я паралелізму рівня к о м а н д .

5. 7. Структурні конфлікти
К о н в е є р и з а ц і я в и к о н а н н я к о м а н д в комп'ютері в и м а г а є з н а ч н и х додаткових затрат
обладнання, о с о б л и в о я к щ о з а б е з п е ч у є т ь с я б е з к о н ф л і к т н е в и к о н а н н я в конвеєрі всіх
м о ж л и в и х комбінацій команд. Я к щ о я к а - н е б у д ь к о м б і н а ц і я к о м а н д н е м о ж е бути в и к о -
168

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


є с т р у к т у р н и й конфлікт.
Існує дві групи с т р у к т у р н и х конфліктів. До першої групи н а л е ж а т ь структурні кон­
флікти, які в и н и к а ю т ь через п о т р е б у п о р у ш е н н я тактової ч а с т о т и р о б о т и конвеєра. Д о
другої групи н а л е ж а т ь с т р у к т у р н і к о н ф л і к т и , які в и н и к а ю т ь у з в ' я з к у з необхідністю
о ч і к у в а н н я н а з в і л ь н е н н я ресурсів к о м п ' ю т е р а .
Найбільш типовим прикладом комп'ютерів, у яких можлива поява структурних
к о н ф л і к т і в першої групи, є к о м п ' ю т е р и з не п о в н і с т ю к о н в е є р н и м и ф у н к ц і о н а л ь н и м и
п р и с т р о я м и . Час в и к о н а н н я операції в т а к о м у п р и с т р о ї м о ж е складати декілька тактів
с и н х р о н і з а ц і ї конвеєра. В ц ь о м у в и п а д к у послідовні к о м а н д и , які в и к о р и с т о в у ю т ь да­
н и й ф у н к ц і о н а л ь н и й п р и с т р і й , не м о ж у т ь н а д х о д и т и до н ь о г о в к о ж н о м у такті. П р и ­
к л а д о м т а к о г о н е повністю к о н в е є р н о г о ф у н к ц і о н а л ь н о г о п р и с т р о ю м о ж е бути пристрій
д о д а в а н н я - м н о ж е н н я на основі одного суматора, в я к о м у д о д а в а н н я виконується за
один такт, а м н о ж е н н я з м е т о ю економії о б л а д н а н н я реалізується ш л я х о м ітераційного
в и к о н а н н я операції д о д а в а н н я . Такий підхід є в и п р а в д а н и м при нечастому виконанні
операції м н о ж е н н я .
М о ж л и в а т а к о ж інша, але д о с и т ь подібна за в п л и в о м на к о н в е є р ситуація, коли в
о с т а н н ь о м у в к л ю ч е н и й п р и с т р і й , з а т р и м к а в я к о м у більша одного т а к т у конвеєра. На­
п р и к л а д , ц е м о ж е бути п а р а л е л ь н и й о д н о т а к т о в и й поділювач д в і й к о в и х чисел, з а т р и м к а
в я к о м у п е р е в и щ у є т а к т к о н в е є р а , а й о г о к о н в е є р и з а ц і я є н е в и п р а в д а н о дорогою із-за
п р и ч и н и м а л о в ж и в а н о с т і цієї операції.
П о я в а с т р у к т у р н и х к о н ф л і к т і в першої групи в и к л и к а є необхідність п р и з у п и н е н н я
р о б о т и к о н в е є р а д о з а к і н ч е н н я р о б о т и ф у н к ц і о н а л ь н о г о п р и с т р о ю , з в е р н е н н я д о якого
в и к л и к а л о конфлікт. Кількість тактів п р о с т о ю к о н в е є р а рівна в і д н о ш е н н ю часу вико­
н а н н я операції в ф у н к ц і о н а л ь н о м у п р и с т р о ї до в е л и ч и н и т а к т у конвеєра. На рис. 5.1
н а в е д е н о діаграму в и к о н а н н я н а с и м у л я т о р і W i n D L X н и ж ч е п р и в е д е н о г о фрагмента де­
якої п р о г р а м и
addff6,f5,f4
xor rl,r3,r4
and r5,r6,r7,
у якій в и н и к с т р у к т у р н и й конфлікт першої групи, в и к л и к а н и й наявністю в програмі
команди додавання чисел з рухомою комою addf. Фаза в и к о н а н н я ЕХ цієї команди є дов­
шою в три рази, ніж такт р о б о т и конвеєра. Тому фази M E M команд addf та and співпали,
тобто вимагається одночасний доступ до ресурсів фази M E M , що і стало причиною кон­
флікту. Через те в и к о н а н н я команди and п р и з у п и н я є т ь с я (Stall - зупинка). Час призупинен­
ня визначається а л г о р и т м о м та с т р у к т у р о ю п р и с т р о ю додавання чисел з рухомою комою.

Instructions I Cycles •8 -7 -6 •5 -4 -З -2 •1 0

addf fG,f5,f4 IF I ID I faddEX(l) | MEM | WB~]

xor r1 ,r3,r4 і IF I ID [ Jrt&TMlMTWB~l

and г5,г6,г7

Рис. 5.1. Структурний конфлікт першої групи


169

Друга група с т р у к т у р н и х конфліктів п о в ' я з а н а з н е д о с т а т н ь о ю кількістю д е я к и х р е ­


сурсів ( ф у н к ц і о н а л ь н и х блоків, п о р т і в і т. д.), що п е р е ш к о д ж а є в и к о н а н н ю довільної п о ­
слідовності к о м а н д в конвеєрі без його п р и з у п и н е н н я . Н а п р и к л а д , п р о ц е с о р м о ж е мати
тільки один п о р т з а п и с у в р е г і с т р о в у п а м ' я т ь , але п р и п е в н и х о б с т а в и н а х к о н в е є р у м о ж е
в и н и к н у т и необхідність в и к о н а т и два з а п и с и в регістрову п а м ' я т ь в о д н о м у такті. Це
п р и з в о д и т ь д о с т р у к т у р н о г о конфлікту. Коли п о с л і д о в н і с т ь к о м а н д н а т р а п л я є н а т а к и й
конфлікт, в и к о н а н н я однієї з к о м а н д п р и з у п и н я є т ь с я до тих пір, поки не с т а н е д о с т у п ­
ним необхідний п р и с т р і й .
На рис. 5.2 п о к а з а н о п р и к л а д такого к о н ф л і к т у для н а с т у п н о г о ф р а г м е н т а п р о г р а м и :
cvti2ffl.fi
суй2££2,£2
ггаЛГ &, Н, а
тиШб,гЗ,ґ4.
С т р у к т у р н и й к о н ф л і к т в и н и к а є на такті -8, коли в і д б у в а є т ь с я з в е р н е н н я до п р и ­
строю м н о ж е н н я д л я в и к о н а н н я ф а з и ЕХ к о м а н д и т и п і f6.f3.f4. В цей час п р и с т р і й
множення зайнятий виконанням фази ЕХ попередньої команди множення, яка триває
5 тактів. Щоб з н я т и цей конфлікт, п о т р і б н о п р о с т о п р и з у п и н и т и к о н в е є р на 4 т а к т и ,
поки відбувається о д н о ч а с н е з в е р н е н н я до п р и с т р о ю м н о ж е н н я (Б-Бїаіі - с т р у к т у р н а зу­
пинка). Подібне п р и з у п и н е н н я часто н а з и в а є т ь с я к о н в е є р н о ю булькою, о с к і л ь к и булька
проходить п о конвеєру, з а й м а ю ч и місце, але н е в и к о н у ю ч и ніякої к о р и с н о ї р о б о т и . П о ­
трібно відзначити, щ о я к б и м н о ж е н н я в и к о н у в а л о с ь з а о д и н такт, с т р у к т у р н и й конфлікт­
не в и н и к н у в би.

Instructioro 1 Cycles і1 - -12 -11 -10 - 9 - 8 і


.7 •є -5 - .9 •1
1
1 3 1
1 3
1 1 ! і 1 1 1

cvli2fMi1 і IF ID •BS МЕМ І WB !

cvti2f f2J2 MEM | WB |

muM f5,f4,f8 l JF І ID | tmuEXm " | MEM | WB |


muH f6,f3.f4 | IF | ID | S-Stall " | ImulEXD) [

Рис. 5.2. Приклад структурного конфлікту при зверненні до пристрою множення

С т р у к т у р н і к о н ф л і к т и другої групи в и н и к а ю т ь т а к о ж п р и о д н о ч а с н о м у з в е р н е н н і д о
пам'яті даних, н а п р и к л а д , при необхідності ч и т а н н я о п е р а н д а для однієї к о м а н д и та за­
пису р е з у л ь т а т у д л я другої. Такі к о н ф л і к т и в и н и к а ю т ь і в к о м п ' ю т е р а х з о д н і є ю п а м ' я т ­
тю к о м а н д і даних. У ц ь о м у випадку, коли одна к о м а н д а , я к а з н а х о д и т ь с я в конвеєрі,
здійснює з в е р н е н н я до п а м ' я т і за д а н и м и , в о н о к о н ф л і к т у в а т и м е з в и б і р к о ю пізнішої в
черзі к о м а н д и , яка в и б и р а є т ь с я з тієї ж пам'яті. В к о м п ю т е р і D L X м о ж л и в и й конфлікт,
наприклад, п р и о д н о ч а с н о м у зверненні до о с н о в н о ї п а м ' я т і з б о к у кеш п а м ' я т і д а н и х та
команд.
Зрозуміло, що комп'ютер, в якому забезпечена підтримка конвеєрного виконання
команд без с т р у к т у р н и х конфліктів, з а в ж д и м а т и м е в и щ у п р о д у к т и в н і с т ь п о р і в н я н о з
к о м п ' ю т е р о м і з с т р у к т у р н и м и к о н ф л і к т а м и . В и н и к а є п и т а н н я : ч о м у р о з р о б н и к и допус­
кають н а я в н і с т ь с т р у к т у р н и х конфліктів? Ц ь о м у є дві п р и ч и н и . П о - п е р ш е , р я д струк­
турних конфліктів п р и н ц и п о в о д у ж е в а ж к о а б о й н е м о ж л и в о л і к в і д у в а т и д л я всіх в и ­
падків р о б о т и к о н в е є р а , н а п р и к л а д , в и р і ш и т и п и т а н н я о д н о ч а с н о г о д о с т у п у д о п а м ' я т і
170

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


д о р о г о ю . К о м п ' ю т е р и , які д о п у с к а ю т ь два з в е р н е н н я до пам'яті в о д н о м у такті, повинні
мати п а м ' я т ь , яка х а р а к т е р и з у є т ь с я п о д в о є н о ю п р о п у с к н о ю с п р о м о ж н і с т ю , наприклад,
це м о ж е бути д о с я г н у т о ш л я х о м в и к о р и с т а н н я о к р е м и х блоків кеш пам'яті для команд
і даних. Аналогічно, повністю к о н в е є р н и й п р и с т р і й ділення з р у х о м о ю комою вимагає
значної кількості в е н т и л і в . Я к щ о с т р у к т у р н і к о н ф л і к т и не в и н и к а т и м у т ь д у ж е часто,
то не з а в ж д и в а р т о п л а т и т и за те, щ о б їх о б і й т и . Тому р о з р о б л я є т ь с я с к а л я р н и й , або не
повністю к о н в е є р н и й п р и с т р і й , щ о м а є м е н ш у з а г а л ь н у затримку, ніж повністю кон­
в е є р н и й . Н а п р и к л а д , р о з р о б н и к и п р и с т р о ї в з р у х о м о ю комою комп'ютерів CDC7600 і
M I P S R2010 в в а ж а л и за к р а щ е мати м е н ш у з а т р и м к у в и к о н а н н я операцій замість повної
їх конвеєризації.

5.2. Конфлікти за даними

5.2.1. Типи конфліктів за даними


О д н и м з ч и н н и к і в , я к и й істотно в п л и в а є на п р о д у к т и в н і с т ь к о н в е є р н и х комп'юте­
рів, є логічні з а л е ж н о с т і м і ж к о м а н д а м и . Такі з а л е ж н о с т і великою мірою о б м е ж у ю т ь
п о т е н ц і й н и й паралелізм с у м і ж н и х о п е р а ц і й в и к о н а н н я к о м а н д , щ о забезпечується від­
п о в і д н и м и а п а р а т н и м и з а с о б а м и . С т у п і н ь в п л и в у ц и х з а л е ж н о с т е й визначається я к
с т р у к т у р о ю к о м п ' ю т е р а (в основному, о р г а н і з а ц і є ю к е р у в а н н я к о н в е є р о м к о м а н д і ха­
р а к т е р и с т и к а м и ф у н к ц і о н а л ь н и х п р и с т р о ї в ) , так і х а р а к т е р и с т и к а м и п р о г р а м .
К о н ф л і к т за д а н и м и в и н и к а є при н а я в н о с т і з а л е ж н о с т і м і ж к о м а н д а м и , коли вони
р о з т а ш о в а н і в п р о г р а м і б л и з ь к о одна до одної. В ц ь о м у в и п а д к у для з а б е з п е ч е н н я пере­
к р и т т я в и к о н а н н я о п е р а ц і й з а л е ж н и х к о м а н д м о ж е в и н и к н у т и необхідність у зміні по­
рядку звернення за операндами.
Відомі три м о ж л и в і к о н ф л і к т и за д а н и м и з а л е ж н о від п о р я д к у о п е р а ц і й ч и т а н н я і
запису. Р о з г л я н е м о дві к о м а н д и - і та j, п р и ц ь о м у к о м а н д а і передує команді j. Можливі
н а с т у п н і конфлікти:
1. W A R (write after read) - ч и т а н н я після запису. К о м а н д а ) н а м а г а є т ь с я п р о ч и т а т и ще
не о н о в л е н и й к о м а н д о ю і о п е р а н д (рис. 5.3). Якби не було конвеєра, то спочатку поперед­
ня к о м а н д а і з а п и с а л а б до к о м і р к и X о п е р а н д , я к и й пізніше був би з ч и т а н и й к о м а н д о ю ) .
У в и п а д к у в и к о р и с т а н н я к о н в е є р н о г о о п р а ц ю в а н н я к о м а н д , як це в и д н о з рисунка, фаза
ч и т а н н я к о м а н д и j в и к о н у є т ь с я р а н і ш е ф а з и з а п и с у к о м а н д и і. Таким ч и н о м , команда j
може некоректно набути старого значення.

Фази виконання Запис до


команди і комірки X

Фази виконання Читання з


команди j комірки X

Рис. 5.3. Конфлікт "запис після читання"

2. R A W (read after write) - з а п и с після ч и т а н н я . К о м а н д а j н а м а г а є т ь с я з а п и с а т и опе­


р а н д до регістра п р и з н а ч е н н я ще до того, як п о п е р е д н і й вміст цього регістра п р о ч и т а є
команда і (рис. 5.4). Я к б и не було конвеєра, то с п о ч а т к у п о п е р е д н я команда і п р о ч и т а л а
777

б з комірки X операнд, а пізніше до цієї к о м і р к и був би з а п и с а н и й і н ш и й о п е р а н д к о м а н ­


дою ]. У в и п а д к у в и к о р и с т а н н я к о н в е є р н о г о о п р а ц ю в а н н я к о м а н д , як це в и д н о з р и с у н ­
ка, фаза з а п и с у к о м а н д и ] в и к о н у є т ь с я р а н і ш е ф а з и ч и т а н н я к о м а н д и і. Т а к и м ч и н о м ,
команда і може набути н е к о р е к т н о г о н о в о г о з н а ч е н н я .

Фази виконання Читання з


команди і комірки X

Фази виконання Запис до


команди j комірки X

Рис. 5.4. Конфлікт "читання після запису"

3. W A W (write after write) - з а п и с після запису. К о м а н д а j н а м а г а є т ь с я з а п и с а т и опе-


ранд до регістра п р и з н а ч е н н я ще до того, як цей з а п и с п р о в е л а к о м а н д а і, т о б т о з а п и с и
закінчуються в н е п р а в и л ь н о м у п о р я д к у (рис. 5.5). Я к б и не було к о н в е є р а , то с п о ч а т к у
попередня команда і з а п и с а л а б до к о м і р к и X о п е р а н д , а пізніше до цієї к о м і р к и був би
записаний і н ш и й о п е р а н д к о м а н д о ю j . У в и п а д к у в и к о р и с т а н н я к о н в е є р н о г о о п р а ц ю ­
вання команд, як це в и д н о з р и с у н к а , ф а з а з а п и с у к о м а н д и j в и к о н у є т ь с я р а н і ш е ф а з и
запису команди і. В результаті комірка т и м ч а с о в о о т р и м у є н е к о р е к т н и й вміст, ч и м м о ж е
«скористатися» п р о м і ж н а k-та команда.

Фази виконання Запис до


команди і комірки X

Фази виконання Запис до


команди j комірки X

Рис. 5.5. Конфлікт "запис після запису"

М о ж л и в и й т а к о ж в и п а д о к R A R (read affer read) - ч и т а н н я після ч и т а н н я , але він н е ­


безпеки не створює, і т о м у не р о з г л я д а є т ь с я . О з н а ч е н н я , класифікацію та п е р ш і методи
скасування конфліктів за д а н и м и (в оригіналі - data hazards) з а п р о п о н у в а в Р о б е р т Кел-
лер в 1975 році.

5 . 2 . 2 . Методи зменшення впливу конфліктів за даними на роботу


конвеєра команд
Застосовуються н а с т у п н і методи з м е н ш е н н я в п л и в у з а з н а ч е н и х в и щ е з а л е ж н о с т е й
між д а н и м и на р о б о т у к о н в е є р а команд:
• П р и з у п и н е н н я в и к о н а н н я к о м а н д и , т о б т о з а т р и м к а з п е р е х о д о м від в и к о н а н н я
операції декодування ID до в и к о н а н н я операції в и к о н а н н я ЕХ в конвеєрі д о т и , доки за­
лежність даних не в и ч е р п у є т ь с я п л и н о м часу.
• В и п е р е д ж у в а л ь н е п е р е с и л а н н я з ярусів к о н в е є р а результатів п о п е р е д н ь о ї к о м а н ­
ди до потрібного ярусу конвеєра, в я к о м у в и к о н у є т ь с я н а с т у п н а к о м а н д а (це п о т р е б у є
додаткових затрат о б л а д н а н н я та у с к л а д н ю є к е р у в а н н я ) .
• Статична д и с п е т ч е р и з а ц і я послідовності к о м а н д у п р о г р а м і під час к о м п і л я ц і ї
з метою з м е н ш е н н я в п л и в у конфліктів за д а н и м и на р о б о т у к о н в е є р а к о м а н д ш л я х о м
зміни п о р я д к у в и к о н а н н я з а л е ж н и х одна від одної к о м а н д .
172

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


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

5.2.3. Призупинення виконання команди

Н а й п р о с т і ш и м р і ш е н н я м для з м е н ш е н н я в п л и в у конфліктів н а р о б о т у конвеєра ко­


м а н д при н а я в н о с т і з а л е ж н о с т і м і ж д а н и м и є п р и з у п и н е н н я в и к о н а н н я команди ] на
декілька тактів з т и м , щ о б з а в е р ш и л о с ь в и к о н а н н я к о м а н д и і, а б о тієї її фази, яка ви­
к л и к а л а конфлікт. Відповідно з а т р и м а є т ь с я і в и к о н а н н я к о м а н д , які й д у т ь слідом за ко­
м а н д о ю і.
Р о з г л я н е м о ф р а г м е н т п р о г р а м и , в и к о н а н н я я к о г о в и м а г а є п р и з у п и н е н н я роботи
конвеєра:

ш Rl,0(R2)
SUB R4,R1,R5
AND R6 , Rl,R7
OR R8,R1,R9

Рис. 5.6 ілюструє р о б о т у конвеєра при виконанні поданого в и щ е фрагмента програми.

Instructions / Cycles -11 -10

Iwrl,0x0(r3) IF I ID

sub г4,г1 ,г5 R-Sta ID MEM | WB

and гЄ,г1,г7 IF ID MEM WB

or г8,і1,(9 IF | ID ЩЩ MEM 1 WB 1

Рис. 5.6. Призупинення конвеєра

Тут друга команда S U B п о т р е б у є результату в и к о н а н н я першої команди, я к и й з'явля­


ється л и ш е на такті 12 (фаза M E M ) , через що в и к о н а н н я п р и з у п и н я є т ь с я (зупинка R-Stall)
д о з а в е р ш е н н я в к а з а н о г о такту. П р и з у п и н е н н я к о н в е є р а з н и ж у є й о г о ефективність, тому
частіше в и к о р и с т о в у ю т ь інші ш л я х и ліквідації в п л и в у з а л е ж н о с т е й між даними.

5.2.4. Випереджувальне пересилання

Н а й п о ш и р е н і ш и м с п о с о б о м з а п о б і г а н н я к о н ф л і к т а м в конвеєрі к о м а н д , поява я к и х
в и к л и к а н а з а л е ж н о с т я м и м і ж д а н и м и , є в и п е р е д ж у в а л ь н е п е р е с и л а н н я даних із попе­
редніх ярусів к о н в е є р а в я р у с и , де ці дані потрібні, м и н а ю ч и п р о м і ж н і яруси конвеєра.
Р о з г л я н е м о з а с т о с у в а н н я в и п е р е д ж у в а л ь н о г о п е р е с и л а н н я на кількох прикладах для
к о н к р е т н и х ф р а г м е н т і в коду п р о г р а м и .
В и п е р е д ж у в а л ь н е п е р е с и л а н н я д а н и х з м е т о ю у с у н е н н я к о н ф л і к т у і пригальмову­
в а н н я к о н в е є р а к о м п ' ю т е р а D L X д л я коду п р о г р а м и
773

SUB R5 , R6 , R7
LW R4,0(R5)
SW 12(R5),R6

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


симуляторі к о м п ' ю т е р а D L X W i n D L X . З а л е ж н і с т ь з а д а н и м и в и н и к а є з а р а х у н о к в и к о ­
ристання другою к о м а н д о ю вмісту регістра R5 за у м о в и , що цей вміст о н о в л ю є т ь с я п о ­
передньою (першою) к о м а н д о ю ф р а г м е н т а . Ц ю з а л е ж н і с т ь д о л а ю т ь ш л я х о м в и п е р е д ­
жувального п е р е с и л а н н я р е з у л ь т а т у першої к о м а н д и (що в и к о р и с т о в у є т ь с я потім я к
зсувний к о м п о н е н т адреси) з і н т е г р о в а н о г о (до к о н в е є р н о г о регістра) поля ALUoutput
(на такті -7) на вхід A L U (на такті -6). На р и с у н к у це п о з н а ч е н о похилою д о д а т к о в о ю
лінією. В и п е р е д ж у в а л ь н е п е р е с и л а н н я г р у н т у є т ь с я н а тому, щ о р е а л ь н о з с у в н а к о м п о ­
нента ф о р м у є т ь с я вчасно, вона в ж е існує в надрах к о н в е є р а , але не є ще занесеною до
регістра регістрового ф а й л а (для ц ь о г о т р е б а в и к о н а т и щ е ф а з и M E M і W B ) .

Instructions / Cycles

sub г5,г6,г7 IF I ID MEM I WB

lw г4,0х0(г5] IF
ID I intEX j MEM I WB 1

sw 0хс(г5),г6 IF I ID I intEX I MEM I WB

Рис. 5.7. Випереджувальне пересилання

В и п е р е д ж у в а л ь н о г о п е р е с и л а н н я в и м а г а є і о с т а н н я ( т р е т я ) к о м а н д а через те, що в и ­
користовує вміст регістра Я4, я к и й ф о р м у є т ь с я другою к о м а н д о ю . Третій команді по­
трібно щ е одне в и п е р е д ж у в а л ь н е п е р е с и л а н н я зсувної к о м п о н е н т и в и к о н а в ч о ї адреси
(вмісту регістра Я5), що п о з н а ч е н о на р и с у н к у іще однією д о д а т к о в о ю лінією.
П о т р і б н о з а з н а ч и т и , що в и п е р е д ж у в а л ь н е п е р е с и л а н н я не з а в ж д и є м о ж л и в и м . Роз­
глянемо в и к о н а н н я в конвеєрі н а с т у п н о г о ф р а г м е н т а коду

LW R1,0(R2)
ADD R4,R1,R2
AND R6,R1,R7
XOR R3 , Rl, R5

З а л е ж н і с т ь д а н и х о б у м о в л е н а в и к о р и с т а н н я м к о м а н д а м и , я к і н а д х о д я т ь після п е р ­
шої к о м а н д и , вмісту регістра R1, я к и й у конвеєрі ф о р м у є т ь с я із с т а н д а р т н о ю з а т р и м ­
кою. П р и ц ь о м у друга к о м а н д а в и к о р и с т о в у є в и п е р е д ж у в а л ь н е п е р е с и л а н н я д а н и х від
першої к о м а н д и після з а в е р ш е н н я ф а з и M E M , коли в ж е о т р и м а н о м а й б у т н і й вміст ре­
гістра R1. Але оскільки цей вміст о т р и м а н о л и ш е на такті -6, а він був п о т р і б н и й на
такті -7, то з ' я в и л а с ь з а т р и м к а R-Stall, тому, що п р и н ц и п о в о н е м о ж л и в е п е р е с и л а н н я до
минулого (рис. 5.8).
174

Instructions / Cycles ; і '° і '' і і

Iwr1.0x0(r2) I IF I ID Ггї'ЕХ ] MEM J WB

add r4.r1.r2 IF I ID |R-Stall| HEX \ MEM | WB ]


and r6,r1 ,r7 I IF I Stall I ID I ir,t£X I MEM | WB

xor r3,r1 ,r5 П Г ~ | id д й щ mem і we 1


Рис. 5.8. Можливі та неможливі випереджувальні пересилання

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


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

5 . 2 . 5 . Статична диспетчеризація послідовності команд у програмі


під час компіляції
У д е я к и х к о м п ' ю т е р а х д л я з м е н ш е н н я кількості конфліктів за д а н и м и , аж до повної
їх ліквідації, з а с т о с о в у ю т ь п р о г р а м н і методи, що передбачають с т в о р е н н я оптимізуючих
к о м п і л я т о р і в , які о р і є н т о в а н і на у с у н е н н я м о ж л и в о с т і п о я в и конфліктів у конвеєрі іще
на стадії к о м п і л я ц і ї п р о г р а м и . О п т и м і з у ю ч и к о м п і л я т о р и , р е о р г а н і з о в у ю т ь послідов­
ність к о м а н д та с т в о р ю ю т ь т а к и й о б ' є к т н и й код, щ о б м і ж к о н ф л і к т у ю ч и м и командами
( к о м а н д а м и , з д а т н и м и д о к о н ф л і к т у ) знаходилась д о с т а т н я кількість неконфліктуючих
к о м а н д . Я к щ о к о м п і л я т о р у ц ь о г о з р о б и т и не вдається, то він в с т а в л я є між конфлікту­
ю ч и м и к о м а н д а м и необхідну кількість к о м а н д т и п у «немає операції». Такий підхід ви­
к л ю ч а є необхідність п р и з у п и н е н н я р о б о т и к о н в е є р а і в и к о н а н н я випереджувального
п е р е с и л а н н я , я к е в и м а г а є д о д а т к о в и х затрат о б л а д н а н н я т а у с к л а д н ю є керування
Д л я в и я в л е н н я к о н ф л і к т у ю ч и х к о м а н д в о п т и м і з у ю ч о м у компіляторі потрібно реа­
лізувати відповідні з а с о б и аналізу к о м а н д . О з н а к а м и н а я в н о с т і конфліктів за даними є
наступні
• для конфліктів за д а н и м и т и п у R A W - н а я в н і с т ь з б і ж н о с т е й в адресах читання
п о п е р е д н і х к о м а н д т а адресах з а п и с у н а с т у п н и х к о м а н д ,
" для конфліктів за д а н и м и т и п у W A R - н а я в н і с т ь з б і ж н о с т е й в адресах запису по­
передніх к о м а н д та адресах ч и т а н н я н а с т у п н и х команд,
• для конфліктів за д а н и м и т и п у W A W - наявність з б і ж н о с т е й в адресах запису
п о п е р е д н і х к о м а н д т а адресах з а п и с у н а с т у п н и х к о м а н д
Тобто о п т и м і з у ю ч и й к о м п і л я т о р п о в и н е н п р о в о д и т и аналіз на збіжність адрес запи­
су і ч и т а н н я сусідніх команд, з н а х о д и т и конфліктуючі к о м а н д и , та р о з в о д и т и їх в часі
С т а т и ч н а д и с п е т ч е р и з а ц і я послідовності к о м а н д у п р о г р а м і під час компіляції ви­
к о р и с т о в у в а л а с я , п о ч и н а ю ч и з 60-х років м и н у л о г о століття, і в и к л и к а л а підвищений
інтерес у 80-х роках, коли к о н в е є р н і м а ш и н и стали п о ш и р е н і ш и м и
Н е х а й , н а п р и к л а д , є послідовність операторів: a = b + c ; d = e - f . Н и ж ч е наведена не
о п т и м і з о в а н а п р о г р а м а для в и к о н а н н я ц и х операторів
LW г2,0(г0)
LW гЗ,4(гО)
A D D r4,r2,r3
175

5\У 8(г0),г4
ІЛУ г5,12(г0)
1Л¥г6,16(гО)
Б и В г7,г5,г6
20(г0),г7

Вхідні дані та результати цієї п р о г р а м и р о з м і щ е н і в комірках пам'яті д а н и х , наведе­


них в табл. 5.1.
Таблиця 5.1
Адреса
Операнд комірки
пам'яті
а 8
Ь 0
с 4
а 20
е 12
і 16

Діаграма в и к о н а н н я п р о г р а м и приведена на рис. 5.9. Як в и д н о з р и с у н к а , т у т наявні


чотири з а т р и м к и , в и к л и к а н а н і з а л е ж н і с т ю за д а н и м и : друга і т р е т я к о м а н д и - з в е р н е н н я
до регістра гЗ, т р е т я і четверта к о м а н д и - з в е р н е н н я до регістра г4, ш о с т а і сьома к о м а н ­
ди - з в е р н е н н я до регістра гб, сьома і в о с ь м а к о м а н д и - з в е р н е н н я до регістра г7.

Ігд&исіюпї І £у6е%
ь іг.ОхЦіО] № І Ю

І» гЗ ,0х4(і0] СЕ І МЕМ І

І № Г Я-5із1 І
м 0х8(і£Г.|г4 \Г Г Я-ЗіаІ І Ш § ІМЕМ І
кч Г5.0хс(с0) П Г Т
Ьі іб.ОхІОВД І М и | МЕМ | У/8
ІЦЬ Е7.Г5.ГЄ ІГ І н-БІаГ І МЕМ І У/8 '

МЕМ І ШІ
Рис. 5.9. Діаграма виконання неоптимізованої програми

Знаходимо конфліктуючі к о м а н д и в наведеній в и щ е п р о г р а м і та р о з в о д е м о їх в часі.


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

Ш г2,0(г0)
Ж гЗ,4(гО)
ІЛ¥г5,12(гО)
ІЛУг6,16(гО)

А О Э г4,г2,гЗ
БИВ г7,г5,г6
Б\У 8(г0),г4
Б\У 20(г0),г7
776

Вхідні дані та результати р о з м і щ е н і в тих же комірках пам'яті, п р и в е д е н и х в табл. 5.1.


Тоді діаграма в и к о н а н н я п р о г р а м и буде мати вигляд, як це п р и в е д е н о на рис. 5.10 (отри­
мана з використанням симулятора \ V i n D L X ) .

•4
Instructions I Cycles - I I - I - I - I - І - ° І І ' І
H h
1 Б U 1 3 1 2 1 1 1 7 6

<т г 2 , 0 х 0 ; Ю ) MEM WB

lw г 3 . 0 х 4 ( Ю ) ID MEM J W B "

lw г 5 . 0 х с ( Ю ) MEM | WB '

Іигб.ОхІО(Ю) IF | ID Ш И Й MEM I WB~|

add г 4 . г 2 . г З I IF I ID
N
y MEM I WB I
sub г 7 , г 5 , г Є Г IF I R-Stail I ID ХЩЩ M E M | WB "

sw 0x8(r0).t4 ID MEM WB

sw 0х14(г0).г7 IF |R-Stall| ID I MEM I WB

Рис. 5.10. Діаграма виконання оптимізованої програми

Як наслідок, повністю усунені два б л о к у в а н н я ( с т о с о в н о регістрів гЗ і г4), та в двох


б л о к у в а н н я х (стосовно гб і г7) з а б р а н о по о д н о м у т а к т у з а т р и м к и . Тобто в цілому забра­
но 6 тактів. З а л е ж н о с т і , які з а л и ш и л и с я , м о ж н а забрати, в и к о р и с т а в ш и схеми обходу.
Відзначимо, що в и к о р и с т а н н я р і з н и х регістрів д л я п е р ш о г о і другого операторів
було д о с т а т н ь о в а ж л и в и м д л я реалізації такого п р а в и л ь н о г о п л а н у в а н н я . Зокрема, якби
з м і н н а е була б з а в а н т а ж е н а в той же с а м и й регістр, що b а б о с, то таке п л а н у в а н н я не
було б к о р е к т н и м . У з а г а л ь н о м у в и п а д к у п л а н у в а н н я к о н в е є р а м о ж е вимагати збільше­
ної кількості регістрів.
С т а т и ч н а д и с п е т ч е р и з а ц і я передбачає р е о р г а н і з а ц і ю послідовності команд, серед
я к и х відсутні к о м а н д и переходу, за в и н я т к о м п о ч а т к у і кінця цієї послідовності. Плану­
в а н н я такої послідовності к о м а н д з д і й с н ю є т ь с я д о с и т ь п р о с т о , оскільки в компіляторі
передбачено, щ о к о ж н а н а с т у п н а к о м а н д а в и к о н у в а т и м е т ь с я , я к щ о в и к о н у є т ь с я перша
з них. Тому м о ж н а побудувати г р а ф з а л е ж н о с т е й ц и х к о м а н д і в п о р я д к у в а т и їх так, щоб
мінімізувати кількість п р и з у п и н е н ь конвеєра. Для п р о с т и х конвеєрів в и к о р и с т а н н я ста­
тичної диспетчеризації дає цілком задовільні результати. Проте, коли д о в ж и н а конвеєра
з б і л ь ш у є т ь с я і його з а т р и м к и з р о с т а ю т ь , потрібні складніші а л г о р и т м и диспетчеризації.

5 . 2 . 6 . Динамічна диспетчеризація послідовності команд у програмі


під час компіляції
Д и н а м і ч н а д и с п е т ч е р и з а ц і я передбачає п р о в е д е н н я компіляції п р о г р а м и узгоджено
з п р о ц е с о м в и к о н а н н я к о м а н д в комп'ютері з метою мінімізації кількості призупинень
к о н в е є р а . У англомовній літературі р а з о м з т е р м і н о м "динамічна д и с п е т ч е р и з а ц і я " часто
з а с т о с о в у ю т ь с я т е р м і н и "out-of-order execution" - н е в п о р я д к о в а н е в и к о н а н н я і "out-of-
order issue" - н е в п о р я д к о в а н е в и д а в а н н я , які п р а к т и ч н о з а в ж д и наявні при динамічній
диспетчеризації. П р и д и н а м і ч н і й о п т и м і з а ц і ї в конвеєрі к о м а н д р о з м і щ у є т ь с я пристрій
в и я в л е н н я конфліктів, я к и й і н ф о р м у є к о м п і л я т о р а п р о наявність конфліктів з тим, щоб
він міг реагувати в процесі к о м п і л я ц і ї на ці к о н ф л і к т и . О д н и м з варіантів реагування є
777

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


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

5.2.7. Перейменування регістрів


Ще о д н и м а п а р а т н и м м е т о д о м мінімізації конфліктів за д а н и м и є метод п е р е й м е ­
нування регістрів. П р и реалізації ц ь о г о м е т о д у в а д р е с н и х п о л я х к о м а н д и в к а з у ю т ь с я
номери не фізичних, а логічних (уявних) регістрів. Н о м е р и л о г і ч н и х регістрів д и н а м і ч н о
відображаються на номери ф і з и ч н и х регістрів, які р о з м і щ у ю т ь с я в р е г і с т р о в о м у файлі
процесора, за д о п о м о г о ю т а б л и ц ь в і д о б р а ж е н н я , котрі о н о в л ю ю т ь с я після д е к о д у в а н н я
кожної команди. Кожен н о в и й результат з а п и с у є т ь с я в ф і з и ч н и й регістр.
Проте п о п е р е д н є (тимчасове) з н а ч е н н я к о ж н о г о логічного регістра зберігається і
може бути відновлене, я к щ о в и к о н а н н я к о м а н д и має бути п е р е р в а н е через в и н и к н е н н я
виняткової ситуації або у в и п а д к у невірного п е р е д б а ч е н н я н а п р я м у у м о в н о г о переходу.
В процесі в и к о н а н н я п р о г р а м и генерується велика кількість т и м ч а с о в и х результатів. Ці
тимчасові результати з а п и с у ю т ь с я в регістрові ф а й л и р а з о м з п о с т і й н и м и р е з у л ь т а т а м и .
Тимчасовий результат стає н о в и м п о с т і й н и м результатом, коли з а в е р ш у є т ь с я в и к о н а н ­
ня команди. У свою чергу, з а в е р ш е н н я в и к о н а н н я к о м а н д и відбувається, коли в и к о н а н ­
ня всіх попередніх к о м а н д у с п і ш н о з а в е р ш е н о в з а д а н о м у п р о г р а м о ю порядку.
Програміст м а є справу тільки з л о г і ч н и м и регістрами. Реалізація ф і з и ч н и х регістрів
від нього прихована.
Метод п е р е й м е н у в а н н я регістрів с п р о щ у є к о н т р о л ь з а л е ж н о с т е й за д а н и м и . У к о м ­
п'ютері, я к и й м о ж е в и к о н у в а т и к о м а н д и не у п о р я д к у їх р о з т а ш у в а н н я в п р о г р а м і , н о ­
мери логічних регістрів м о ж у т ь стати д в о з н а ч н и м и , оскільки о д и н і той же регістр м о ж е
бути п р и з н а ч е н и й послідовно для з б е р і г а н н я різних значень. Але оскільки н о м е р и фі­
зичних регістрів у н і к а л ь н о і д е н т и ф і к у ю т ь кожен результат, всі н е о д н о з н а ч н о с т і усува­
ються.

5.3. Конфлікти керування

5.3.7. Типи конфліктів керування


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

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


м а н д , щ о з н и ж у є й о г о п р о д у к т и в н і с т ь . Те, щ о к о м а н д а н а л е ж и т ь д о к о м а н д керування,
м о ж н а в и я с н и т и л и ш е після її д е к о д у в а н н я , т о б т о за кілька тактів після її надходження
до к о н в е є р а (в к о м п ' ю т е р і D L X через 2 т а к т и ) .
За цей час на перші я р у с и к о н в е є р а в ж е н а д і й д у т ь нові команди. П р и виявленні ко­
м а н д и к е р у в а н н я п о т р і б н о в и я с н и т и , чи здійснюється перехід, і я к щ о так, то очистити
к о н в е є р від н а с т у п н и х за нею к о м а н д та з а в а н т а ж и т и команду, р о з м і щ е н у за адресою
переходу. Для ц ь о г о спочатку потрібно в и з н а ч и т и в и к о н а в ч у адресу переходу, яка може
бути або б е з п о с е р е д н ь о в а д р е с н о м у полі к о м а н д и , або її потрібно о б ч и с л и т и в наступних
ярусах конвеєра. Таким ч и н о м , реалізація в конвеєрі к о м а н д керування вимагає виконан­
ня додаткових о п е р а ц і й , що р і в н о з н а ч н о його з у п и н ц і на відповідну кількість тактів
О с о б л и в о с к л а д н о ю д л я в и к о н а н н я в конвеєрі є к о м а н д а у м о в н о г о переходу. Коли
в и к о н у є т ь с я к о м а н д а у м о в н о г о переходу, в о н а м о ж е або з м і н и т и вміст лічильника ко­
м а н д , а б о з а л и ш и т и його без змін. Я к щ о к о м а н д а у м о в н о г о переходу з а м і н ю є лічильник
к о м а н д з н а ч е н н я м а д р е с и , обчисленої в команді, то перехід н а з и в а є т ь с я здійснимим. В
і н ш о м у в и п а д к у він н а з и в а є т ь с я н е з д і й с н и м и м . Д л я з а б е з п е ч е н н я о п р а ц ю в а н н я в конве­
єрі к о м а н д у м о в н о г о п е р е х о д у п о т р і б н о п е р е д б а ч и т и п р о в е д е н н я відповідних дій. П р о ­
стий метод р о б о т и з у м о в н и м и переходами п о л я г а є в п р и з у п и н е н н і конвеєра як тільки
в и я в л е н а к о м а н д а у м о в н о г о переходу до тих пір, п о к и в о н а не досягне я р у с у конвеєра,
я к и й о б ч и с л ю є н о в е з н а ч е н н я л і ч и л ь н и к а к о м а н д . Реалізація цього методу для наведе­
ного н и ж ч е ф р а г м е н т а п р о г р а м и

dd r7,r8,rl
bnez г4,$ТЕХТ
and r5,r7,r7
add r2,r2,r3

в і д о б р а ж е н а на рис. 5.11, де після д е к о д у в а н н я к о м а н д и B N E Z (перехід, я к щ о не рів­


н и й нулю) п р и з у п и н я є т ь с я в и к о н а н н я н а с т у п н о ї к о м а н д и .

Instructions / Cycles

add r7,r8/l

Ьпег г4,$ТЕХТ

and г5,г7д7
add Г2,Г2,ГЗ

Рис. 5.11. Призупинення конвеєра при виконанні команди умовного переходу

К о м п ' ю т е р , в я к о м у з д і й с н ю ю т ь с я п р и з у п и н е н н я при в и я в л е н н і к о м а н д у м о в н и х пе­


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

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


Для з н и ж е н н я втрат на в и б і р к у к о м а н д и , до якої з д і й с н ю є т ь с я перехід, в и к о р и с т о в у ­
ються декілька підходів:
• о б ч и с л е н н я в и к о н а в ч о ї а д р е с и к о м а н д и переходу в ярусі д е к о д у в а н н я к о м а н д и ;
• в и к о р и с т а н н я буфера а д р е с переходів;
• в и к о р и с т а н н я б у ф е р а к о м а н д , до я к и х здійснюються переходи;
• в и к о р и с т а н н я б у ф е р а циклу.
Обчислення в и к о н а в ч о ї а д р е с и к о м а н д и переходу в ярусі д е к о д у в а н н я к о м а н д и пе­
редбачає на етапі д е к о д у в а н н я к о м а н д и в и з н а ч е н н я не тільки її н а л е ж н о с т і до к о м а н д
керування, але і адреси переходу. Ця адреса м о ж е бути в полі самої к о м а н д и , а я к щ о ні,
то має бути обчислена в ц ь о м у ж ярусі. Д л я з а б е з п е ч е н н я о б ч и с л е н н я адреси переходу
в ярус д е к о д у в а н н я в в о д и т ь с я д о д а т к о в и й с у м а т о р . Тим с а м и м час з у п и н к и к о н в е є р а
може бути з м е н ш е н и й до одного такту.
При в и к о р и с т а н н і б у ф е р а а д р е с переходів, я к и й є а с о ц і а т и в н о ю п а м ' я т т ю , в н ь о м у
зберігаються адреси декількох о с т а н н і х к о м а н д переходів, які є о з н а к о ю пошуку, та від­
повідні їм адреси переходу. Перед в и б і р к о ю з п а м ' я т і чергової к о м а н д и її адреса (вміст
лічильника команд) п о р і в н ю є т ь с я з а д р е с а м и н а я в н и х в буфері к о м а н д і, я к щ о відбулося
співпадіння, з буфера в и б и р а є т ь с я адреса переходу (рис. 5.12), а сигнал п р о наявність
адреси в буфері п р о п у с к а є її ч е р е з м у л ь т и п л е к с о р . Тоді вибірка к о м а н д и переходу м о ж е
бути здійснена вже в н а с т у п н о м у такті. П р и відсутності а д р е с и к о м а н д и в буфері адреса
переходу ш у к а є т ь с я в ярусі д е к о д у в а н н я та, р а з о м з а д р е с о ю к о м а н д и , з а н о с и т ь с я до бу­
фера адрес переходів. П р и необхідності з а м і щ е н н я і н ф о р м а ц і ї в буфері адрес переходів
використовуються а л г о р и т м и з а м і щ е н н я т и п у FIFO, L R U , R A N D .

, I
Регістр команд

Читання/
запис
Пам'ять команд Буфер адрес
переходів

Ярус декодування

адреса Наявність адреси адреса


переходу в буфері переходу

Мультиплексор

Рис. 5.12. Використання буфера адрес переходів


180

К р а щ и м , н і ж в и к о р и с т а н н я б у ф е р а адрес переходів, є в и к о р и с т а н н я буфера команд,


до я к и х з д і й с н ю є т ь с я перехід (рис. 5.13), коли в б у ф е р р а з о м з адресою команди пере­
ходу, я к а є о з н а к о ю пошуку, з а п и с у ю т ь с я коди к о м а н д , до я к и х здійснюються переходи,
щ о д о з в о л я є п р и п о в т о р н о м у в и к о н а н н і такої к о м а н д и в и к л ю ч и т и н е тільки фазу обчис­
л е н н я адреси переходу, але і ф а з у вибірки к о м а н д и . П р и відсутності в буфері команди,
до якої здійснюється перехід, її адреса в и з н а ч а є т ь с я в ярусі д е к о д у в а н н я , п р о в о д и т ь с я її
з ч и т у в а н н я з п а м ' я т і к о м а н д та, р а з о м з а д р е с о ю к о м а н д и переходу, вона з а н о с и т ь с я до
буфера.

Регістр команд

1 Читання/
Буфер команд, запис
до яких
Пам'ять команд
здійснюється
перехід

команда Наявність адреси команда


переходу в буфері переходу

Мультиплексор

Ярус декодування

Рис. 5.13. Використання буфера команд переходів

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


я к и х з д і й с н ю є т ь с я перехід п р и в и к о н а н н і ц и к л і в .
Іще б і л ь ш и й е ф е к т дає в и к о р и с т а н н я б у ф е р а циклу, до я к о г о із з б е р е ж е н н я м поперед­
н ь о г о п о р я д к у з а п и с у є т ь с я д е я к а кількість к о м а н д , щ о в и к о н у в а л и с ь о с т а н н і м и . Буфер
входить до п е р ш о г о я р у с у к о н в е є р а , в я к о м у в и к о н у є т ь с я вибірка к о м а н д (рис. 5.14).
Коли в і д б у в а є т ь с я перехід, то с п о ч а т к у з д і й с н ю є т ь с я з в е р н е н н я до буфера. Я к щ о це був
п о в т о р н и й ц и к л або ітерація, то всі його к о м а н д и будуть в ж е н а я в н и м и в буфері, я к и й
є м е н ш и м за о б ' є м о м і ш в и д ш и м о с н о в н о ї п а м ' я т і та кеш п а м ' я т і команд. Тим с а м и м всі
н а с т у п н і ітерації б у д у т ь в и к о н у в а т и с ь із з ч и т у в а н н я м к о м а н д з буфера, що с у т т є в о п р и ­
с к о р ю є р о б о т у к о м п ' ю т е р а . О п и с а н и й підхід з о к р е м а був в и к о р и с т а н и й в комп'ютерах
C R A Y - 1 ф і р м и Cray Research та C D C 6600 ф і р м и Control Data Corporation.
787

__L_
Регістр команд

Читання/
запис
Пам'ять команд Буфер циклу

команда

Наявність команди команди


в буфері циклу

Мультиплексор

Ярус декодування

Рис. 5.14. Використання буфера циклу

5.3.3. Зниження втрат на виконання команд умовного переходу


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

5.3.3.7. Введення буфера попередньої вибірки

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


дається з двох блоків пам'яті т и п у F I F O та блоку о б ч и с л е н н я ц і л ь о в о ї адреси переходу, і
включений в к о н в е є р к о м а н д , як це п о к а з а н о на рис. 5.15.
182

FIFO

Блок обчислення
пл Пам'ять
цільової адреси МП
команд переходу

FIFO

Рис. 5.15. Конвеєр з буфером попередньої вибірки команд

За з н а ч е н н я м п р о г р а м н о г о л і ч и л ь н и к а ПЛ к о м а н д и з п а м ' я т і к о м а н д зчитуються в
один з б у ф е р і в FIFO. Блок о б ч и с л е н н я ц і л ь о в о ї адреси аналізує к о ж н у з ч и т а н у команду.
П р и в и я в л е н н і к о м а н д и у м о в н о г о переходу він о б ч и с л ю є адресу переходу та керує бло­
к а м и F I F O і п р о г р а м н и м л і ч и л ь н и к о м з т и м , щ о б з а б е з п е ч и т и паралельне з ч и т у в а н н я
обох м о ж л и в и х п о с л і д о в н о с т е й к о м а н д з адреси переходу в блоки FIFO. Після обчис­
л е н н я адреси переходу блок о б ч и с л е н н я цільової адреси підключає до входу конвеєра
к о м а н д через м у л ь т и п л е к с о р МП в і д п о в і д н и й б у ф е р , а вміст і н ш о г о б у ф е р а стирається.
За р а х у н о к п о п е р е д н ь о ї в и б і р к и для в и я в л е н н я того, з д і й с н е н н и м чи нездійсненним
є у м о в н и й перехід, т а к и м підходом в д а є т ь с я з м е н ш и т и в т р а т и на в и к о н а н н я команд
у м о в н о г о переходу. П р и ц ь о м у б у ф е р п о п е р е д н ь о ї вибірки м о ж н а р о з г л я д а т и я к декіль­
ка д о д а т к о в и х ярусів к о н в е є р а , які з б і л ь ш у ю т ь його початкову з а т р и м к у та не в п л и в а ю т ь
на п р о д у к т и в н і с т ь . З рис. 5.12 в и д н о , що т а к и й підхід у с к л а д н ю є р о б о т у конвеєра. Крім
того, п р и н а я в н о с т і в п р о г р а м і декількох к о м а н д у м о в н о г о переходу підряд це вимагає
в к л ю ч е н н я д о д а т к о в и х блоків F I F O та іще більше у с к л а д н ю є р о б о т у комп'ютера.

5.3.3.2. Дублювання початкових ярусів конвеєра

П о д і б н и м д о о п и с а н о г о в и щ е с п о с о б о м з н и ж е н н я втрат н а в и к о н а н н я команд умов­


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

Початкові яруси конвеєра команд

Пам'ять
ї
Блок обчислення
Решта ярусів
пл конвеєра
цільової адреси МП
команд команд
переходу

Початкові яруси конвеєра команд


Рис. 5.16. Конвеєр з дублюванням початкових ярусів

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


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

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


Тут т а к о ж з ' я в л я ю т ь с я п р о б л е м и , коли д о п р и й н я т т я р і ш е н н я щ о д о п о т о ч н о ї к о м а н ­
ди переходу в к о н в е є р н а д х о д и т ь нова команда. Тоді з н о в у в и м а г а ю т ь с я додаткові пара­
лельні вітки п о ч а т к о в и х ярусів к о н в е є р а к о м а н д .
О п и с а н и й метод, як і попередній, з н а й ш о в з а с т о с у в а н н я в кількох версіях сім'ї
комп'ютерів I B M 360/370.

5.3.3.3. Затримка переходу

Ми вже бачили, що п р о с т а схема в и к о н а н н я в к о н в е є р і к о м а н д у м о в н о г о переходу


полягає в блокуванні в и к о н а н н я будь-якої к о м а н д и , н а с т у п н о ї за к о м а н д о ю у м о в н о г о
переходу, до тих пір, поки не стане в і д о м и м н а п р я м переходу. Рис. 5.11 в і д о б р а ж а в саме
такий підхід. П р и в а б л и в і с т ь такого р і ш е н н я п о л я г а є в його п р о с т о т і .
На противагу ц ь о м у методу стратегія з а т р и м а н о г о переходу передбачає п р о д о в ж е н н я
виконання команд, які ідуть в програмі за командою переходу, н е з а л е ж н о від її результату.
Це має сенс л и ш е тоді, коли наступні за командою переходу команди м а ю т ь бути викона­
ними незалежно від того, був перехід чи ні, а команда переходу не має на них впливу.
П о ш у к т а к и х к о м а н д з д і й с н ю є т ь с я на етапі к о м п і л я ц і ї п р о г р а м и , а я к щ о знайдена їх
кількість недостатня, то на вільні м і с ц я в с т а в л я ю т ь с я к о м а н д и т и п у «немає операції».

5.3.3.4. Статичне передбачення переходу

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


керування. Ідея ц ь о г о способу п о л я г а є в тому, що до м о м е н т у в и к о н а н н я к о м а н д и умов­
ного переходу, а б о відразу після її н а д х о д ж е н н я в к о н в е є р р о б и т ь с я п р и п у щ е н н я п р о
напрям в и к о н а н н я у м о в н о г о переходу з а л е ж н о від імовірності й о г о здійсненності або
нездійсненності. К о м а н д и п о д а ю т ь с я в к о н в е є р в і д п о в і д н о до п р и й н я т о г о п р и п у щ е н н я .
Якщо п р и п у щ е н н я в и я в и л о с я п р а в и л ь н и м , т о ж о д н и х втрат, п о в ' я з а н и х і з к о м а н д о ю пе­
реходу, в конвеєрі не буде. П р и п о м и л к о в о м у п р и п у щ е н н і к о н в е є р необхідно п о в е р н у т и
до стану, з я к о г о почалася п о м и л к о в а в и б і р к а к о м а н д , що р і в н о з н а ч н о п р и з у п и н е н н ю
конвеєра на в т р а ч е н у кількість тактів. Вигода від з а с т о с у в а н н я ц ь о г о м е т о д у т и м більша,
чим в и щ а точність передбачення, т о б т о в і д н о ш е н н я кількості п р а в и л ь н и х передбачень
до загальної їх кількості.
На даний час р о з р о б л е н о багато способів п е р е д б а ч е н н я переходу. З а л е ж н о від того,
на основі чого р о б и т ь с я передбачення, р о з р і з н я ю т ь с т а т и ч н е та д и н а м і ч н е п е р е д б а ч е н н я
переходів.
Статичне передбачення переходів з д і й с н ю є т ь с я на етапі к о м п і л я ц і ї п р о г р а м и на
основі деякої апріорної і н ф о р м а ц і ї п р о неї. Н а й ш и р ш е з а с т о с у в а н н я з н а й ш л и н а с т у п н і
методи статичного передбачення у м о в н о г о переходу:
• метод п о в е р н е н н я ;
• метод профілювання, передбачення здійснюється за результатами в и к о р и с т а н н я ін­
формації про профіль виконання програми, я к а зібрана в результаті попередніх її запусків;
• результат переходу в и з н а ч а є т ь с я кодом операції к о м а н д и переходу;
• результат переходу в и з н а ч а є т ь с я н а п р я м о м переходу.
Метод п о в е р н е н н я грунтується на передбаченні, що перехід не в і д б у в а є т ь с я ніколи,
184

а б о що перехід відбувається з а в ж д и . В п е р ш о м у в и п а д к у у м о в н и й перехід прогнозуєть­


с я я к н е з д і й с н е н н и й . П р и ц ь о м у а п а р а т у р а п о в и н н а п р о с т о п р о д о в ж у в а т и виконання
п р о г р а м и , неначебто у м о в н и й перехід зовсім не в и к о н у в а в с я . В ц ь о м у в и п а д к у необ­
хідно п о к л о п о т а т и с я п р о те, щ о б не з м і н и т и стан к о м п ' ю т е р а до тих пір, поки напрям
переходу не стане о с т а т о ч н о в і д о м и м .
У д е я к и х к о м п ' ю т е р а х ця схема з н е з д і й с н е н н и м и за п р о г н о з о м у м о в н и м и перехода­
ми р е а л і з о в а н а ш л я х о м п р о д о в ж е н н я вибірки к о м а н д , неначе у м о в н и й перехід був зви­
ч а й н о ю к о м а н д о ю . Поведінка к о н в е є р а виглядає так, ніби нічого н е з в и ч а й н о г о не відбу­
в а є т ь с я (рис. 5.17а). П р о т е , я к щ о у м о в н и й перехід насправді в и к о н у є т ь с я , то необхідно
п р о с т о о ч и с т и т и к о н в е є р від к о м а н д , в и б р а н и х слідом за к о м а н д о ю у м о в н о г о переходу,
і з а н о в о п о в т о р и т и в и б і р к у к о м а н д (рис. 5.17b).
Розглянемо фрагмент програми
loop:
lw г2,0(г1)
lw r3,20(rl)
addi rl,rl,#4
subi r4,rl,#16
add r2,r2,r3
sw 36(rl),r2
bnez r4,loop
xor r7,r8,r5
and г2дТ,г5
add r3,r8,r2
trap 0
Instructions / Cycles •20 -13-+--13 -17 •1Б -13

add r2.r2.i3 ID — MEM I WB I


IF 1 ID р і й MEM I W
s« 0x24(r1li2

Ьпег r4.$TEXT IF I ID I MEM I WB


xoi г7д8,г5 I IF I ID MEM I W8
and r2.rl J5 I IF I ID MEM I WB

a)
nstructbns / Cycles -13 , -12 , -11 , -10

Iwr2,0n0(i1l

!wr3.0x14(r1)

addirl.rl.0x4 ID MEM I WB 1
subi r4,r1,0x1 Û 1ЕЛЖ MEM I WB

add r2.r2.i3 L2£ I 'P 1 MEM I WB

sw 0x24[r1 |j2 Пг~Т~іо"


атегг4.$ТЕХТ

*» i7,n3.t5 ] aborted
lw r2.0x0ti1) I IF I ID j HEM I W B l

b)
Рис. 5.17. Діаграма роботи модифікованого конвеєра
185

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


переходу декодована і обчислена цільова адреса переходу, припускається, що перехід здій­
сненний, і п р о в о д и т ь с я вибірка к о м а н д та їх в и к о н а н н я , п о ч и н а ю ч и з цільової адреси.
Метод п о в е р н е н н я є п р о с т и м в реалізації і д о с т а т н ь о е ф е к т и в н и м д л я д е я к и х класів
програм, т о м у ш и р о к о в и к о р и с т о в у є т ь с я в к о м п ' ю т е р а х , з о к р е м а в МІРБ-Х, БирегЗРАРчС,
1486, М68020, МС88000, УАХ11/780.
Під п р о ф і л ю в а н н я м р о з у м і є т ь с я в и к о н а н н я п р о г р а м и для д е я к о г о е т а л о н н о г о н а б о ­
ру вихідних даних, в процесі якого з б и р а є т ь с я і н ф о р м а ц і я п р о результат к о ж н о ї к о м а н ­
ди умовного переходу. Тобто т у т п р о г н о з переходів базується на і н ф о р м а ц і ї п р о п р о ф і л ь
виконання п р о г р а м и , зібраної під час попередніх ї ї п р о х о д ж е н ь . К л ю ч о в и м м о м е н т о м
тут є те, що поведінка переходів п р и в и к о н а н н і п р о г р а м и часто п о в т о р ю є т ь с я . Ті ко­
манди, які частіше з а к і н ч у ю т ь с я п е р е х о д о м , п р о г н о з у ю т ь с я як здійсненні, інші - як не­
здійсненні. Вибір фіксується в с п е ц і а л ь н о м у р о з р я д і к о м а н д и . П р и в и к о н а н н і п р о г р а м и
конвеєр к о м а н д враховує з н а ч е н н я ц ь о г о р о з р я д у . П р о в е д е н і д о с л і д ж е н н я показуй т?
достатньо успішне п р о г н о з у в а н н я переходів з в и к о р и с т а н н я м цієї стратегії.
Іще о д н и м д о с и т ь п р о с т и м і е ф е к т и в н и м є метод с т а т и ч н о г о п е р е д б а ч е н н я у м о в н о г о
переходу за кодом операції к о м а н д и переходу. Тут одні к о м а н д и п р о г н о з у ю т ь с я як здій­
сненні, н а п р и к л а д "більше нуля", а інші - як нездійсненні, н а п р и к л а д " п е р е п о в н е н н ї
Перехід в п р о г р а м і м о ж е в і д б у т и с я в д в о х н а п р я м к а х - в п е р е д а б о назад, з а л е ж н о
від того, більша адреса переходу від в м і с т у п р о г р а м н о г о л і ч и л ь н и к а чи менша. Логічно
передбачити, що к о м а н д и з н а п р я м к о м переходу н а з а д є більш і м о в і р н и м и , ніж к о м а н д и
переходу вперед, оскільки більшість к о м а н д переходу в и к о р и с т о в у є т ь с я д л я організації
циклів, коли відбуваються переходи до п о ч а т к у циклу. Ця стратегія і п о к л а д е н а в основу
методу п е р е д б а ч е н н я р е з у л ь т а т у переходу за н а п р я м о м переходу.

5.3.3.5. Динамічне передбачення переходу

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


формації п р о попередні переходи. П о р і в н я н о з і с т а т и ч н и м д и н а м і ч н е п е р е д б а ч е н н я м а є
вищу точність, т о б т о більше п р и п у щ е н ь є п р а в и л ь н и м и , але є з н а ч н о с к л а д н і ш и м .
П р и реалізації методів д и н а м і ч н о г о п е р е д б а ч е н н я с т в о р ю є т ь с я т а б л и ц я історії п е р е ­
ходів.
Н а й п р о с т і ш и м в а р і а н т о м є о д н о р о з р я д н а т а б л и ц я історії переходів, в якій зберіга­
ється результат о с т а н н ь о г о в и к о н а н н я к о м а н д и переходу. Я к щ о ц я к о м а н д а з а в е р ш и л а ­
ся переходом, то у відповідну комірку таблиці з а п и с у є т ь с я о д и н и ц я , в і н ш о м у в и п а д к у -
нуль. П е р е д б а ч е н н я переходу для чергової к о м а н д и збігається із з д і й с н и м и м переходом
попередньої. Після в и к о н а н н я цієї к о м а н д и , я к щ о п е р е д б а ч е н н я не з д і й с н и л о с я , вміст
комірки таблиці коригується.
Таблиця історії переходів реалізується в складі буфера адрес переходу (рис. 5.12). Ко­
жен рядок буфера адрес переходу в к л ю ч а є адресу к о м а н д и переходу, п р о г н о з о в а н у адре­
су наступної команди (адресу переходу) і передісторію к о м а н д и переходу (рис. 5.18). Біти
передісторії є і н ф о р м а ц і є ю п р о в и к о н а н н я а б о н е в и к о н а н н я у м о в п е р е х о д у даної к о м а н ­
ди у минулому. З в е р н е н н я до буфера а д р е с переходу ( п о р і в н я н н я з п о л я м и адрес к о м а н д
переходу) п р о в о д и т ь с я з а д о п о м о г о ю п о т о ч н о г о з н а ч е н н я п р о г р а м н о г о л і ч и л ь н и к а н а
етапі вибірки чергової к о м а н д и . За передісторією к о м а н д и п р о г н о з у є т ь с я в и к о н а н н я а б о
786

н е в и к о н а н н я у м о в к о м а н д и переходу і п р о в о д и т ь с я вибірка та д е ш и ф р у в а н н я команд


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

Програмний лічильник Однорозрядна


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

Компаратор

Є збір Збігу Адреса Прогноз виконання


немає переходу Т або невиконання
переходу
Рис. 5.18. Динамічне передбачення переходу

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


комірок. П р а к т и ч н е в и к о р и с т а н н я з н а й ш л и таблиці з д в о - та т р и р о з р я д н и м и комірка­
м и . В в а ж а є т ь с я , щ о передісторія переходу, щ о м і с т и т ь і н ф о р м а ц і ю п р о два попередні
в и п а д к и в и к о н а н н я цієї к о м а н д и , д о з в о л я є п р о г н о з у в а т и р о з в и т о к подій з цілком до­
с т а т н ь о ю вірогідністю. П р и н а д х о д ж е н н і к о м а н д и у м о в н о г о переходу в к о н в е є р відбува­
є т ь с я з в е р н е н н я до таблиці історії переходів та, з а л е ж н о від вмісту відповідної комірки,
р о б и т ь с я п р о г н о з , я к и й в и з н а ч а є п о д а л ь ш и й п о р я д о к ч и т а н н я к о м а н д п р о г р а м и . Піс­
л я в и з н а ч е н н я ф а к т и ч н о г о р е з у л ь т а т у переходу д о вмісту к о м і р к и додається о д и н и ц я ,
я к щ о перехід відбувся, т а в і д н і м а є т ь с я о д и н и ц я , я к щ о перехід н е відбувся.
В якості а д р е с и таблиці історії переходів м о ж е бути в и к о р и с т а н а адреса команди
у м о в н о г о переходу, вміст регістру л о к а л ь н о ї історії а б о регістру глобальної історії, та
к о м б і н а ц і я в к а з а н и х даних. Ц и м в и з н а ч а є т ь с я в и б р а н а стратегія динамічного перед­
бачення.
Я к щ о в якості а д р е с и таблиці історії переходів в и к о р и с т о в у є т ь с я адреса команди
у м о в н о г о переходу, т о б т о вміст п р о г р а м н о г о л і ч и л ь н и к а , як це п о к а з а н о на рис.5.18, то
т а к и й підхід д о з в о л я є в р а х о в у в а т и п о в е д і н к у к о ж н о ї к о м а н д и у м о в н о г о переходу, я к а в
більшості в и п а д к і в є, як п р а в и л о , здійсненною або, з а з в и ч а й , нездійсненною. Викорис­
т а н н я таблиці історії переходів д о з в о л я є р о з д і л и т и к о м а н д и із здійсненним і з нездій­
с н е н н и м у м о в н и м п е р е х о д о м . Ф у н к ц і о н у в а н н я ц ь о г о способу ф о р м у в а н н я коду перед­
б а ч е н н я , я к и й м а є н а з в у о д н о р і в н е в о ї схеми п е р е д б а ч е н н я , для випадку, коли таблиця
історії переходів є к і л ь к а р о з р я д н о ю , п о к а з а н о на рис. 5.19а.
187

Регістр 1/0
Програмний Регістр і/о Програмний глобальної
лічильник глобальної лічильник історії
історії

IX
Таблиця Таблиця Таблиця
історії історії історії
переходів переходів переходів

І ї
Лічильник
+ 1/-1
І
Лічильник
+1/-1

Лічильник
<
І
Код
Код
передбачення
Код
передбачення
передбачення
а) б) в)

Рис. 5.19. Однорівнева схема передбачення з формуванням адреси таблиці історії


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

Вміст комірки, з ч и т а н и й з таблиці історії переходів за а д р е с о ю з п р о г р а м н о г о л і ч и л ь ­


ника, записується в л і ч и л ь н и к , в я к о м у з д і й с н ю є т ь с я д о д а в а н н я або в і д н і м а н н я о д и н и ц і .
Лічильник п р а ц ю є в р е ж и м і н а с и ч е н н я , т о б т о й о г о вміст не з м і н ю є т ь с я при д о д а в а н н і
одиниці, коли він м а є м а к с и м а л ь н е з н а ч е н н я , та не з м і н ю є т ь с я п р и в і д н і м а н н і о д и н и ц і ,
коли він має нульове з н а ч е н н я . В я к о с т і п е р е д б а ч е н н я в и к о р и с т о в у є т ь с я с т а р ш и й р о з ­
ряд лічильника. Я к щ о він р і в н и й о д и н и ц і , то п е р е д б а ч а є т ь с я , що перехід є з д і й с н е н н и й ,
я к щ о нуль - н е з д і й с н е н н и й . З н а ч е н н я ц ь о г о р о з р я д у н а д х о д и т ь в к о н в е є р д л я к е р у в а н н я
вибіркою п о д а л ь ш и х к о м а н д , а вміст л і ч и л ь н и к а після м о д и ф і к а ц і ї п о в е р т а є т ь с я за тією
ж адресою в таблицю.
О п и с а н и й підхід з а б е з п е ч у є в и с о к у імовірність п е р е д б а ч е н н я д л я б а г а т о к р а т н о в и ­
конуваних к о м а н д переходу. О д н а к д л я о д н о р а з о в о в и к о н у в а н и х к о м а н д переходу цей
підхід не діє. Тому для т а к и х к о м а н д переходу п о т р і б н о в р а х у в а т и результати п е р е х о ­
ду попередніх команд, о с к і л ь к и м і ж н и м и є в з а є м о з а л е ж н і с т ь , і це д о з в о л я є п і д в и щ и т и
кількість п р а в и л ь н и х передбачень. Для з а б е з п е ч е н н я в р а х у в а н н я результатів п е р е х о д у
попередніх к о м а н д до схеми п е р е д б а ч е н н я в в о д и т ь с я регістр глобальної історії, вміст
якого в і д о б р а ж а є історію в и к о н а н н я п о с т а н н і х к о м а н д у м о в н о г о переходу, де п - р о з -
рядність регістра. Це є з с у в н и й регістр, вміст я к о г о з с у в а є т ь с я на один р о з р я д після
кожного в и к о н а н н я к о м а н д и у м о в н о г о переходу, а до з в і л ь н е н о г о р о з р я д у з а н о с и т ь с я
о д и н и ц я або нуль з а л е ж н о від н а я в н о с т і чи відсутності переходу відповідно. К о ж н о м у
значенню регістра відповідає своя комірка в таблиці історії (рис. 5.196). Вміст цієї к о м і р ­
ки модифікується як і в п о п е р е д н ь о м у способі, а її с т а р ш и й р о з р я д передбачає результат
команди переходу.
П і д в и щ е н н я точності п е р е д б а ч е н н я досягається о д н о ч а с н и м в р а х у в а н н я м я к р е ­
зультатів попереднього в и к о н а н н я даної к о м а н д и переходу, так і результатів в и к о н а н н я
інших команд переходу. Це р е а л і з у є т ь с я ф о р м у в а н н я м а д р е с и таблиці історії переходів
188

ш л я х о м о б ' є д н а н н я адреси к о м а н д и переходу та вмісту регістру глобальної історії. Для


такого о б ' є д н а н н я в и к о р и с т о в у є т ь с я або о п е р а ц і я конкатенації (зчеплення) (рис. 5.19в),
або о п е р а ц і я д о д а в а н н я за модулем 2. П р и ц ь о м у м о ж у т ь в и к о р и с т о в у в а т и с я як всі р о з ­
р я д и адреси к о м а н д и переходу та вмісту регістру глобальної історії, так і л и ш е деяка їх
кількість.
П о т р і б н о відзначити, що в якості таблиці історії переходів з а з в и ч а й використовуєть­
с я асоціативна п а м ' я т ь , щ о д о з в о л я є с у т т є в о п р и с к о р и т и п о ш у к коду переходу.
Наведені схеми н а з в а н і о д н о р і в н е в и м и , о с к і л ь к и в них з а д і я н о один рівень таблиць.
Такі схеми п е р е д б а ч е н н я в и к о р и с т а н і в н а с т у п н и х комп'ютерах: Alpha 21064 та 21064,
A M D К 5 , R10000, Power РС620, U l t r a S P A R C т а і н ш и х .
Для в р а х у в а н н я к о н к р е т н и х результатів переходів к о ж н о ї к о м а н д и переходу часто
в и к о р и с т о в у є т ь с я т а б л и ц я л о к а л ь н о ї історії, я к а складається з регістрів, у к о ж н о м у з
я к и х подібно до регістру глобальної історії ф і к с у ю т ь с я результати переходів конкретної
к о м а н д и . Д в о р і в н е в а схема п е р е д б а ч е н н я переходу, я к а реалізує цей підхід, показана на
рис. 5.20.

Програмний
лічильник

Таблиця
історії
переходів

Лічильник

7
Код
передбачення

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

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


к о м п ' ю т е р і в з а с т о с о в у ю т ь с я гібридні схеми п е р е д б а ч е н н я переходів, коли в к о ж н о м у
к о н к р е т н о м у в и п а д к у з а с т о с о в у є т ь с я та схема п е р е д б а ч е н н я , від якої очікується найви­
ща точність п е р е д б а ч е н н я . С т р у к т у р а такої гібридної схеми п о к а з а н а на рис. 5.21.
189

Програмний
лічильник

Схема Схема Схема


передбачення передбачення передбачення
переходу 1 переходу 2 переходу З

w u u
Мультиплексор

Код
передбачення
Рис. 5.21. Структура гібридної схеми передбачення переходу

А д р е с у в а н н я к о н к р е т н о ї схеми п е р е д б а ч е н н я переходу та в и б і р схеми передбачення


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

5.4. Покращена структура комп'ютера Із спрощеною


системою команд
На основі проведеного в и щ е аналізу к о н ф л і к т і в у конвеєрі та способів їх мініміза­
ції м о ж н а п р о в е с т и п о к р а щ а н н я с т р у к т у р и к о м п ' ю т е р а із с п р о щ е н о ю системою команд.
В якості п р и к л а д у на рис. 5.22 п о д а н о п о к р а щ е н у с т р у к т у р у т р а к т у в и к о н а н н я к о м а н д
комп'ютера Б Ь Х .

Kjti г З . г І . 0 x 1 3 2 0 акИІ г 2 . г 2 , 0 х 8 addi r l . r l . 0 x 8 sd 0x0(r2).f6

Рис. 5.22. Покращений конвеєр комп'ютера DLX


190

С т р у к т у р а д о д а т к о в о містить:
- с у м а т о р A D D , я к и й п р и с к о р е н о , в ж е на сходинці ID, обраховує цільову адресу пе­
реходу;
- вузол Zero п е р е н е с е н о на о д и н я р у с вперед, щ о б п р и с к о р и т и р е а к ц і ю конвеєра
на к о м а н д у у м о в н о г о переходу та с и н х р о н і з у в а т и цю р е а к ц і ю з о б р а х у в а н н я м цільової
адреси переходу. В результаті з м е н ш е н о на т а к т з а т р и м к у переходу;
- введено додаткові і н ф о р м а ц і й н і ш и н и , що д о з в о л я ю т ь п р и с к о р е н о надсилати до
вузлів п р о ц е с о р а коди о п е р а н д і в при реалізації в и п е р е д ж е н н я . П р и ц ь о м у кількість вхо­
дів м у л ь т и п л е к с о р і в А Л П з б і л ь ш е н о .
К о л ь о р а м и відтінені відповідності станів вузлів к о н в е є р а командам, які цей конвеєр
опрацьовує.

5.5. Особливості запобігання конфліктам в суперскалярних


процесорах
В с у п е р с к а л я р н и х п р о ц е с о р а х , як ми вже б а ч и л и з їх р о з г л я д у в розділі 5, паралельно
п р а ц ю є кілька к о н в е є р і в к о м а н д . Тому в ц и х п р о ц е с о р а х , як і в п р о ц е с о р а х із простою
системою к о м а н д , м о ж л и в і р а н і ш е о п и с а н і к о н ф л і к т и п р и к о н в е є р н о м у в и к о н а н н і ко­
манд. Крім того, в н и х на додаток м о ж л и в і к о н ф л і к т и , які пов'язані з тим, що команди
з н а х о д я т ь с я в п а р а л е л ь н и х вітках. Тому т у т у с к л а д н ю ю т ь с я п и т а н н я з а п о б і г а н н я раніше
о п и с а н и м с т р у к т у р н и м к о н ф л і к т а м , к о н ф л і к т а м за д а н и м и та конфліктам керування, і,
крім того, д о б а в л я ю т ь с я к о н ф л і к т и , п о в ' я з а н і із з а б е з п е ч е н н я м в п о р я д к о в а н о г о посту­
п л е н н я к о м а н д н а в и к о н а н н я т а в п о р я д к о в а н о г о з а в е р ш е н н я команд.
Під в п о р я д к о в а н и м п о с т у п л е н н я м к о м а н д т а в п о р я д к о в а н и м з а в е р ш е н н я м команд
р о з у м і ю т ь т а к и м ч и н о м в п о р я д к о в а н у черговість п о с т у п л е н н я команд н а в и к о н а н н я т а
черговість з а в е р ш е н н я к о м а н д , яка визначена п р о г р а м о ю . В і н ш о м у в и п а д к у говорять
п р о н е в п о р я д к о в а н е п о с т у п л е н н я к о м а н д т а н е в п о р я д к о в а н е з а в е р ш е н н я команд.
В п е р ш и х с у п е р с к а л я р н и х п р о ц е с о р а х т и п у Pentium було реалізоване впорядковане
п о с т у п л е н н я к о м а н д і в п о р я д к о в а н е з а в е р ш е н н я к о м а н д . Такий підхід був досить про­
стим, о с к і л ь к и п р и в и н и к н е н н і конфліктів у о д н о м у з конвеєрів п р о ц е с о р а п р и з у п и н я ­
лась р о б о т а і н ш о г о к о н в е є р а до з н я т т я конфлікту, з т и м , щ о б не п о р у ш у в а т и порядок
п о с т у п л е н н я т а з а в е р ш е н н я к о м а н д . О д н а к ц е в и м а г а л о в е л и к и х часових втрат.
Коли в с у п е р с к а л я р н о м у п р о ц е с о р і р е а л і з у є т ь с я стратегія п і д т р и м к и впорядкова­
ного п о с т у п л е н н я к о м а н д та н е в п о р я д к о в а н о г о з а в е р ш е н н я команд, то це дає м о ж л и ­
вість к о н в е є р а м , в я к и х не відбулися к о н ф л і к т и , п р о д о в ж и т и о п р а ц ю в а н н я команд. Це
д о з в о л я є п і д в и щ и т и е ф е к т и в н і с т ь в и к о р и с т а н н я о б л а д н а н н я конвеєра команд. Однак
п р и ц ь о м у п о т р і б н о з а б е з п е ч и т и о т р и м а н н я к о р е к т н и х результатів, оскільки м о ж л и в і
некоректні з а п и с и результатів у р е г і с т р о в и й ф а й л та в п а м ' я т ь .
Іще більше п і д в и щ и т и е ф е к т и в н і с т ь в и к о р и с т а н н я о б л а д н а н н я конвеєра команд до­
з в о л я є р е а л і з а ц і я стратегії п і д т р и м к и н е в п о р я д к о в а н о г о п о с т у п л е н н я к о м а н д і невпо­
р я д к о в а н о г о з а в е р ш е н н я к о м а н д . За цією стратегією к о м а н д и подаються на в и к о н а н н я
не в п о р я д к у їх п о с т у п л е н н я в к о н в е є р , а при їх готовності до о п р а ц ю в а н н я , тобто коли
н а я в н і о п е р а н д и та в і л ь н и й ф у н к ц і о н а л ь н и й вузол, в я к о м у в о н и м а ю т ь бути о п р а ц ь о ­
вані. Для в и к о н а н н я цієї стратегії необхідно з а б е з п е ч и т и коректність результату вико-
197

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


в а н н я м команд, або в і д к л а д е н н я м в и к о н а н н я к о м а н д . Д л я п е р е в п о р я д к у в а н н я к о м а н д в
конвеєр в в о д и т ь с я додаткова б у ф е р н а п а м ' я т ь , я к а н а з и в а є т ь с я в і к н о м команд. До цієї
пам'яті з а в а н т а ж у ю т ь с я всі к о м а н д и , які п р о й ш л и д е к о д у в а н н я , та, п р и необхідності за­
побігання к о н ф л і к т а м к о м а н д за д а н и м и п р и з а п и с у результатів до р е г і с т р о в о г о файла,
виконується п е р е й м е н у в а н н я регістрів (див. п. 5.2.8). Вікно к о м а н д з а б е з п е ч у є відкла­
дення передачі к о м а н д на в и к о н а н н я до готовності о п е р а н д і в і д о з в о л я є з а б е з п е ч и т и
потрібну черговість з а в е р ш е н н я к о м а н д .
Буферна п а м ' я т ь , яка н а з и в а є т ь с я в і к н о м команд, м о ж е б у т и р е а л і з о в а н а д в о м а с п о ­
собами - як інтегрована та як р о з п о д і л е н а .
Інтегрована б у ф е р н а п а м ' я т ь р е а л і з у є т ь с я на основі асоціативної пам'яті. Вона опе­
р а т и в н о в и я в л я є і подає на в и к о н а н н я к о м а н д и , для в и к о н а н н я я к и х є всі необхідні опе-
р а н д и та ресурси. Для к о ж н о ї к о м а н д и в цій п а м ' я т і в и д і л я є т ь с я одна комірка. В цій ко­
мірці зберігається декодована к о м а н д а , я к а має н а с т у п н і п о л я : декодоване поле операції
(О), поля операндів ( П О ) , які в м і щ у ю т ь а б о самі о п е р а н д и , а б о адреси їх з н а х о д ж е н н я ,
поле, яке вказує місце р о з м і щ е н н я р е з у л ь т а т у (ПР), а т а к о ж поле р о з р я д і в достовірності
(РД). Для аналізу д о с т у п н о с т і та в и к о н а н н я р о з п о д і л у к о м а н д до в і л ь н и х ф у н к ц і о н а л ь ­
них п р и с т р о ї в (ФП) в п р о ц е с о р і в и к о р и с т о в у є т ь с я п р и с т р і й диспетчеризації, в я к о м у є
регістр з а й н я т о с т і ф у н к ц і о н а л ь н и х п р и с т р о ї в п р о ц е с о р а (рис. 5.23).
Вікно команд
ФП1

З блоку ПОІ РД1 П02 РД2 ФП2


декодування
Пристрій
диспетчеризації
ФПЗ

Регістр
зайнятості
ФПк

Рис. 5.23. Використання інтегрованої буферної пам'яті (вікна команд)


для перевпорядкування команд

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


коли в п о л я х о п е р а н д і в П О І т а П 0 2 п р и с у т н і з н а ч е н н я о п е р а н д і в або ї х адрес (тобто
в полі р о з р я д і в достовірності Р д і та РД2 з а п и с а н і о д и н и ц і ) , та коли п о т р і б н і для її в и ­
конання ф у н к ц і о н а л ь н і п р и с т р о ї є в і л ь н и м и (тобто в регістрі з а й н я т о с т і з а п и с а н і о д и ­
ниці). Результат в и к о н а н н я к о м а н д и з а п и с у є т ь с я до відповідного регістру р е г і с т р о в о ­
г о файла. О н о в л е н н я і н ф о р м а ц і ї п р о з а й н я т і с т ь ф у н к ц і о н а л ь н и х п р и с т р о ї в п р о ц е с о р а
здійснюється в к о ж н о м у його циклі.
Я к щ о вікно к о м а н д р е а л і з у є т ь с я я к розподілена б у ф е р н а п а м ' я т ь , т о н а вході к о ж н о ­
г о ф у н к ц і о н а л ь н о г о блоку р о з м і щ у є т ь с я б у ф е р д е к о д о в а н и х к о м а н д , я к и й н а з и в а є т ь с я
блоком р е з е р в у в а н н я (БР). Після в и б і р к и т а д е к о д у в а н н я к о м а н д и п о с т у п а ю т ь д о того
блоку р е з е р в у в а н н я , в я к о м у в о н и б у д у т ь в и к о н у в а т и с я (рис. 5.24). Р о б о т а к о ж н о г о
192

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

БР1 ФП1

БР2 ФП2
З блоку
декодування Пристрій
диспетчеризації

БРЗ ФПЗ

БРк Ф П к

Рис. 5.24. Використання розподіленої буферної пам'яті (вікна команд)


для перевпорядкування команд

О с к і л ь к и метод р е з е р в у в а н н я о р і є н т о в а н и й н а п о д а н н я н а о п р а ц ю в а н н я одночасно
декількох к о м а н д , в и к о р и с т а н н я розподіленої б у ф е р н о ї п а м ' я т і (вікна команд) для забез­
печення перевпорядкуванням команд є значно простішим порівняно з використанням
б а г а т о п о р т о в о ї і н т е г р о в а н о ї б у ф е р н о ї пам'яті. П о д і б н у р о з п о д і л е н у буферну пам'ять
в п е р ш е з а п р о п о н у в а в Р. Томасуло в к о м п ' ю т е р н і й системі ІВМ360/91 у 1967 році, тому
о п и с а н и й м е т о д р е з е р в у в а н н я н о с и т ь його ім'я.
В а ж л и в и м п и т а н н я м д л я з а б е з п е ч е н н я в и к о н а н н я стратегії н е в п о р я д к о в а н о г о по­
с т у п л е н н я к о м а н д та н е в п о р я д к о в а н о г о з а в е р ш е н н я к о м а н д є п і д т р и м а н н я правильної
послідовності в и к о н а н н я к о м а н д при декількох п а р а л е л ь н о п р а ц ю ю ч и х ф у н к ц і о н а л ь н и х
п р и с т р о я х . В и р і ш е н н я ц ь о г о п и т а н н я було з н а й д е н е в 1988 р о ц і С м і т о м та Плескуном,
які з а п р о п о н у в а л и для ц ь о г о в и к о р и с т а т и б у ф е р в і д н о в л е н н я послідовності. До цього
б у ф е р а к о м а н д и з а п и с у ю т ь с я в порядку, я к и й відповідає з а д а н о м у п р о г р а м о ю порядку
їх з ч и т у в а н н я , а з ч и т у в а н н я к о м а н д и з б у ф е р а д о з в о л е н о тільки після з а в е р ш е н н я її ви­
к о н а н н я та коли всі попередні к о м а н д и вже з ч и т а н і з буфера.

5.6. Комп'ютери з довгим форматом команди


Раніше р о з г л я н у т і с у п е р с к а л я р н і п р о ц е с о р и х а р а к т е р и з у ю т ь с я високою п р о д у к т и в ­
ністю п р и з а б е з п е ч е н н і б е з к о н ф л і к т н о г о в и к о н а н н я к о м а н д . Але це вимагає значних до­
д а т к о в и х затрат о б л а д н а н н я . На рис. 5. 25 п о к а з а н о к р и с т а л с у п е р с к а л я р н о г о процесора
M I P S R10000, на я к о м у позначені вузли п р о ц е с о р а та виділено апаратні засоби п р и с т р о ю
к е р у в а н н я , які з а б е з п е ч у ю т ь н е в п о р я д к о в а н е в и к о н а н н я команд. Видно, що ці засоби
з а й н я л и більше ЗО відсотків п л о щ і кристала.
193

Рис. 5.25. Кристал суперскалярного процесора MIPS R10000, на якому позначені вузли процесора
та виділено засоби керування невпорядкованим виконанням команд

Розглянемо далі а р х і т е к т у р и к о м п ' ю т е р і в , у я к и х відсутні к о н ф л і к т и команд. До них,


зокрема, належать к о м п ' ю т е р и з д о в г и м ф о р м а т о м к о м а н д и
Архітектура к о м п ' ю т е р і в з д о в г и м ф о р м а т о м к о м а н д и (КДФК), англійський еквіва­
лент V L I W (Very Long Instruction Word), бере свій початок від п а р а л е л ь н о г о мікрокоду,
що застосовувався в к о м п ютерах C D C 6 6 0 0 і I B M 360/91. У 70-х р о к а х багато к о м п ' ю т е р ­
них систем о с н а щ у в а л и с я д о д а т к о в и м и в е к т о р н и м и п р о ц е с о р а м и о б р о б к и сигналів, щ о
використовували д о в г и й ф о р м а т к о м а н д и . З о к р е м а , д о т а к и х п р о ц е с о р і в н а л е ж а л и п р о ­
цесори АР-120В, AP-190L та інші ф і р м и FPS.
П е р ш и м и у н і в е р с а л ь н и м и к о м п ' ю т е р а м и з а р х і т е к т у р о ю КДФК стали м і н і - с у п е р -
комп ютери, в и п у щ е н і на п о ч а т к у 1980-х років к о м п а н і я м и MultiFlow, Culler і Cydrome,
але вони не м а л и к о м е р ц і й н о г о успіху. Н а п р и к л а д , комп ютер компанії M u l t i F l o w 7/300
використовував два а р и ф м е т и к о - л о г і ч н і п р и с т р о ї д л я цілих чисел, два а р и ф м е т и к о - л о -
гічні п р и с т р о ї для чисел з р у х о м о ю комою і блок логічного г а л у ж е н н я . Й о г о 2 5 6 - р о з -
рядний довгий ф о р м а т к о м а н д и містить поля д л я в о с ь м и 3 2 - р о з р я д н и х к о м а н д . В ц и х
комп'ютерах були в и к о р и с т а н і п л а н у в а л ь н и к о б ч и с л е н ь і п р о г р а м н а к о н в е є р и з а ц і я , які
є основою технології к о м п і л я т о р а КДФК
Архітектура КДФК передбачає н а я в н і с т ь багатьох н е з а л е ж н и х ф у н к ц і о н а л ь н и х п р и ­
строїв. Для з а б е з п е ч е н н я п а р а л е л ь н о г о в и к о н а н н я декілька к о м а н д п а к у ю т ь с я в один
пакет, я к и й в п о д а л ь ш о м у будемо н а з и в а т и в я з а н к о ю команд, та п о с т у п а ю т ь на в и к о ­
нання. В'язанка к о м а н д м о ж е включати, н а п р и к л а д , к о м а н д и над ч и с л а м и з ф і к с о в а н о ю
та рухомою комою, к о м а н д у з в е р н е н н я до пам яті та к о м а н д у переходу, як це п о к а з а н о
на рис. 5.26. Така в ' я з а н к а к о м а н д м а т и м е набір полів к о м а н д для к о ж н о г о ф у н к ц і о н а л ь ­
ного п р и с т р о ю , що п р и з в о д и т ь до кратного з б і л ь ш е н н я її д о в ж и н и п о р і в н я н о з однією
командою. Як в и д н о з р и с у н к а , к о ж н е з ц и х полів керує в і д п о в і д н и м ф у н к ц і о н а л ь н и м
п р и с т р о є м , а обмін д а н и м и м і ж п р и с т р о я м и здійснюється через і н т е г р о в а н и й багато-
портовий регістровий ф а й л .

ГЗЗам.371.
194

В'язанка команд
з блоку вибірки
команд
Ділення 3 Множення 3 Додавання з
Перехід Читання/запис
Фіксованою комою рухомою КОМОЮ рухомою комою

Пристрій Пристрій Пристрій Пристрій Пристрій


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

Регістровий файл

Ї
Обмін даними
з пам'яттю т

Рис. 5.26. Виконання в'язанки команд в незалежних функціональних пристроях

З а в д а н н я е ф е к т и в н о г о п л а н у в а н н я п а р а л е л ь н о г о в и к о н а н н я к о м а н д в комп'ютері з
д о в г и м ф о р м а т о м к о м а н д и повністю лягає на к о м п і л я т о р . К о м п і л я т о р з послідовності
к о м а н д початкової п р о г р а м и генерує в ' я з а н к у к о м а н д ш л я х о м п р о г л я д а н н я програми як
в межах, так і за м е ж а м и лінійних д і л я н о к п р о г р а м и без галужень. Для забезпечення ко­
р е к т н о с т і в и к о н а н н я операцій к о м п і л я т о р має бути здатним визначати можливість появи
конфліктів при виконанні команд. У п е в н и х ситуаціях, коли к о м п і л я т о р не може зроби­
ти з а к л ю ч е н н я , що конфлікт не відбудеться, н а п р и к л а д , у в и п а д к у з в е р н е н н я до масиву,
коли індекс о б ч и с л ю є т ь с я під час в и к о н а н н я п р о г р а м и , операції не м о ж у т ь плануватися
для п а р а л е л ь н о г о в и к о н а н н я . Відповідно це п р и з в о д и т ь до з н и ж е н н я продуктивності.
К о м п і л я т о р в и з н а ч а є д і л я н к у п р о г р а м и без циклів, я к а стає кандидатом для форму­
в а н н я в ' я з а н к и к о м а н д . Для з б і л ь ш е н н я р о з м і р у тіла ц и к л у ш и р о к о використовується
м е т о д и к а р о з к р у ч у в а н н я ц и к л і в , щ о п р и з в о д и т ь д о у т в о р е н н я в е л и к и х фрагментів про­
г р а м и , що не містять з в о р о т н и х дуг.
Я к щ о в и к о н а н н ю підлягає п р о г р а м а , щ о м а є тільки переходи вперед, компілятор р о ­
б и т ь е в р и с т и ч н и й п р о г н о з в и б о р у у м о в н и х гілок. Шлях, щ о м а є н а й б і л ь ш у вірогідність
в и к о н а н н я (його н а з и в а ю т ь т р а с о ю ) , в и к о р и с т о в у є т ь с я для оптимізації, щ о проводиться
з в р а х у в а н н я м конфліктів за д а н и м и м і ж к о м а н д а м и і о б м е ж е н ь за а п а р а т н и м и ресур­
сами. Під час п л а н у в а н н я генерується в ' я з а н к а к о м а н д . Всі к о м а н д и , які входять до в'я­
з а н к и к о м а н д , в и д а ю т ь с я о д н о ч а с н о і в и к о н у ю т ь с я паралельно. Після о б р о б к и першої
траси п л а н у є т ь с я н а с т у п н и й шлях, щ о м а є н а й б і л ь ш у вірогідність в и к о н а н н я (попере­
д н я траса більше не р о з г л я д а є т ь с я ) . П р о ц е с п а к у в а н н я к о м а н д послідовної програми у
в ' я з а н к и к о м а н д п р о д о в ж у є т ь с я до тих пір, поки не буде о п т и м і з о в а н а вся програма.
К л ю ч о в о ю у м о в о ю д о с я г н е н н я е ф е к т и в н о ї р о б о т и к о м п ' ю т е р а з довгим ф о р м а т о м
к о м а н д и є к о р е к т н и й п р о г н о з в и б о р у у м о в н и х гілок. Відмічено, н а п р и к л а д , що прогноз
у м о в н и х гілок для н а у к о в и х п р о г р а м часто в и я в л я є т ь с я т о ч н и м . П о в е р н е н н я назад є у
всіх ітераціях циклу, за в и н я т к о м останньої. Таким ч и н о м , п р о г н о з буде коректний в
більшості в и п а д к і в . Інші у м о в н і гілки, н а п р и к л а д , гілка о б р о б к и п е р е п о в н е н н я і пере­
вірки г р а н и ч н и х у м о в (вихід за м е ж і масиву), т а к о ж є н а д і й н о п е р е д б а ч у в а н и м и .
З погляду а р х і т е к т у р н и х ідей к о м п ' ю т е р з д о в г и м ф о р м а т о м к о м а н д и м о ж н а розгля­
дати як р о з ш и р е н н я архітектури к о м п ' ю т е р а з п р о с т о ю системою команд, оскільки тут
795

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


перевага п р о г р а м н о м у в и р і ш е н н ю конфліктів.
В архітектурі к о м п ' ю т е р а з д о в г и м ф о р м а т о м к о м а н д и , крім того, п р и н ц и п з а м і н и
керування під час в и к о н а н н я п р о г р а м и на п л а н у в а н н я під час компіляції п о ш и р е н и й і на
систему пам яті. Для з а б е з п е ч е н н я з а й н я т о с т і к о н в е є р н и х ф у н к ц і о н а л ь н и х п р и с т р о ї в
тут необхідна пам я т ь з в и с о к о ю п р о п у с к н о ю с п р о м о ж н і с т ю . О д н и м із сучасних підходів
до збільшення п р о п у с к н о ї с п р о м о ж н о с т і пам яті є в и к о р и с т а н н я р о з ш а р у в а н н я п а м ' я т і ,
причому м о ж л и в і к о н ф л і к т и д о с т у п у до п а м ' я т і в и з н а ч а є с п е ц і а л ь н и й м о д у л ь к о м п і л я ­
тора модуль з а п о б і г а н н я к о н ф л і к т а м
Таким ч и н о м , р о з п а р а л е л ю в а н н я у к о м п ' ю т е р а х з д о в г и м ф о р м а т о м к о м а н д и в и к о ­
нується в и к л ю ч н о на етапі компіляції під час ф о р м у в а н н я в я з а н о к команд, т о б т о ста­
тично. Так як н е м о ж л и в о наперед п е р е д б а ч и т и р о з в ' я з а н н я усіх видів з а л е ж н о с т е й , від-
компільовані п р о г р а м и в и м а г а ю т ь р е т е л ь н о г о н а л а г о д ж у в а н н я . Н е г а т и в н о в п л и в а ю т ь
також ефекти н е в п о р я д к о в а н о г о з а в е р ш е н н я в и к о н а н н я к о м а н д . Саме т о м у надійність
виконання п р о г р а м и т у т з м е н ш е н а п о р і в н я н о з с у п е р с к а л я р н и м в а р і а н т о м архітектури
комп'ютера. Тобто, цей підхід дозволяє досягти м а к с и м у м у продуктивності, але є п р и й ­
нятним лише у певних з а с т о с у в а н н я х комп'ютерних засобів. Перевага КДФК в потенцій­
ній продуктивності найбільш відчутна в серверних задачах, де паралельно о п р а ц ь о в у ю т ь
декілька процесів (ниток), в наукових задачах, задачах т р и в и м і р н о ї візуалізації та в за­
дачах обробки сигналів (де, зокрема, застосовуються п р о ц е с о р и A D S P 2 1 X X фірми Analog
Devices та T M S 3 2 0 C 6 X ф і р м и Texas Instruments, які н а л е ж а т ь до вказаної архітектури).
Архітектуру КДФК з а п р о в а д ж е н о у новітніх п р о ц е с о р а х Alpha фірми D E C та ІА-64
фірми Intel. Останній процесор о п т и м і з о в а н о для в и к о н а н н я серверних задач Як п р и к л а д
на рис. 5.27 приведено структуру ядра процесора T M S 3 2 0 C 6 X фірми Texas Instruments,
в якому використано довгий ф о р м а т команди. В'язанка команд цього процесора склада­
ється з восьми 32-розрядних команд. Тут в и к о р и с т а н о два т р а к т и о б р о б к и даних А та В,
кожний з яких має по 4 функціональні блоки та свій багатопортовий регістровий файл.

2 independent 32x8=256 bits


data paths. (8 instructions)
8 execution units

L: ALU
S: Shifter, ALU
M; Multiplier
On-Chip Data Memory
D: Address gen.

Рис. 5.27. Структура ядра процесора TMS320C6X фірми Texas Instruments

Тракти о б р о б к и даних А і В є о д н о т и п н и м и та м а ю т ь в с в о є м у складі н а с т у п н і ф у н к ­


ціональні пристрої: L - А Л П , S - п р и с т р і й зсуву та А Л П , М - п е р е м н о ж у в а ч , D - ф о р ­
мувач адрес пам'яті. В'язанка к о м а н д з ч и т у є т ь с я з п а м ' я т і к о м а н д (On-Chip Program
Memory) та п о с т у п а є до блоку д и с п е т ч е р и з а ц і ї (Dispatch Unit), я к и й здійснює р о з п о д і л
команд у відповідні ф у н к ц і о н а л ь н і пристрої.
196

5.7. Комп'ютери з комбінованою архітектурою


П р и реалізації а р х і т е к т у р и КДФК в и н и к а ю т ь серйозні п р о б л е м и . К о м п і л я т о р цього
к о м п ' ю т е р а п о в и н е н в д е т а л я х в р а х о в у в а т и в н у т р і ш н і особливості процесора, аж до ор­
ганізації р о б о т и й о г о ф у н к ц і о н а л ь н и х п р и с т р о ї в . Як наслідок, п р и в и п у с к у нової версії
к о м п ' ю т е р а з б і л ь ш о ю кількістю ф у н к ц і о н а л ь н и х п р и с т р о ї в д о в о д и т ь с я р а д и к а л ь н о пе­
р е п и с у в а т и і к о м п і л я т о р . Інша п р о б л е м а - це за с в о є ю с у т т ю статична п р и р о д а оптимі-
зації, я к у з а б е з п е ч у є к о м п і л я т о р КДФК. В а ж к о передбачити, я к , н а п р и к л а д , поведеться
к о м п і л я т о р , коли з і т к н е т ь с я під час к о м п і л я ц і ї з н е п е р е д б а ч е н и м и д и н а м і ч н и м и ситуа­
ц і я м и , т а к и м и я к о ч і к у в а н н я в в е д е н н я / в и в е д е н н я . Тому р о з р о б н и к и сучасних ш в и д к о ­
діючих к о м п ' ю т е р і в п о ч и н а ю т ь відходити від чистої архітектури КДФК
У 2000 р о ц і к о р п о р а ц і я Трансмета в и п у с т и л а п р о ц е с о р Crusoe, сумісний із системою
к о м а н д п р о ц е с о р а х86, я к и й х а р а к т е р и з у є т ь с я в и с о к о ю п р о д у к т и в н і с т ю т а з н и ж е н о ю
с п о ж и в а н о ю п о т у ж н і с т ю . П о к р а щ а н н я х а р а к т е р и с т и к д о с я г н у т о ш л я х о м з а м і н и відчут­
ної ч а с т к и а п а р а т у р и п р о ц е с о р а д о п о м і ж н о ю , але о б о в ' я з к о в о ю , п р о г р а м н о ю оболон­
кою П р о ц е с о р Crusoe с к л а д а є т ь с я з а п а р а т н о г о я д р а та п р о г р а м н о ї о б о л о н к и , яка ф о р ­
мує п р о г р а м н и й код д л я ц ь о г о ядра. Я д р о м є н е с к л а д н и й КДФК, з д а т н и й виконувати до
ч о т и р ь о х п р о с т и х к о м а н д в к о ж н о м у такті. Д о п о в н е н н я а п а р а т н о г о я д р а програмною
о б о л о н к о ю д л я ф о р м у в а н н я п р о г р а м н о г о коду с т в о р ю є е ф е к т п р и с у т н о с т і п о в н о ц і н н о ­
го н а б о р у а п а р а т н и х засобів а р х і т е к т у р и х86. П р о г р а м н у о б о л о н к у ф о р м у в а н н я коду на­
з и в а ю т ь Code M o r p h i n g ™ тому, що в о н а д и н а м і ч н о відбиває ("morphs") зовнішні (склад­
ні) к о м а н д и п р о ц е с о р а х86 у в н у т р і ш н і (спрощені) в ' я з а н к и к о м а н д а п а р а т н о г о я д р а
Технологія Code M o r p h i n g ™ ф і р м и Т р а н с м е т а з м і н ю є т р а д и ц і й н і методи проекту­
в а н н я п р о ц е с о р і в . П р а к т и ч н а а п р о б а ц і я того, щ о серійні п р о ц е с о р и м о ж н а реалізувати
як гібрид п р о г р а м н и х і а п а р а т н и х засобів, с у т т є в о р о з ш и р и л а м о ж л и в о с т і п р о е к т у в а л ь ­
ників п о в и б о р у т а в п р о в а д ж е н н ю о п т и м а л ь н и х рішень. П о перше, паралельна робота
п р о е к т у в а л ь н и к і в а п а р а т н о г о я д р а п р о ц е с о р а та с и с т е м н и х програмістів, які р о з р о б л я ­
ють п р о г р а м н у оболонку, с п р и я є с к о р о ч е н н ю термінів р о з р о б к и . П о друге, зовнішня
п р о г р а м н а о б о л о н к а ф о р м у в а н н я коду із в я з а н о к к о м а н д для я д р а п р о ц е с о р а забез­
печує н е з а л е ж н и й від п р и х о в а н о ї апаратної архітектури р о з в и т о к п р о г р а м н и х засобів
к о м п ' ю т е р н о ї системи в ц і л о м у т о б т о с и с т е м н и х та п р и к л а д н и х п р о г р а м
Я д р о п р о ц е с о р а в к л ю ч а є два ф у н к ц і о н а л ь н і п р и с т р о ї для операцій з фіксованою ко­
мою, ф у н к ц і о н а л ь н и й п р и с т р і й д л я о п е р а ц і й з р у х о м о ю комою, ф у н к ц і о н а л ь н и й при­
стрій з в е р н е н н я до п а м ' я т і (load/store) та ф у н к ц і о н а л ь н и й п р и с т р і й в и к о н а н н я умовних
переходів (рис. 5.28).

128-розрядна молекула (4 атоми-команди)

ADD FADD LD BRCC

1
1
Функціональний Функціональний Функціональний
пристрій для пристрій для Функціональний пристрій
операцій операцій пристрій виконання
з фіксованою з рухомою звернення умовних
комою комою до пам'яті переходів

Рис. 5.28. Загальна структура ядра процесора Crusoe


797

Тут A D D - о п е р а ц і я д о д а в а н н я з ф і к с о в а н о ю комою, F A D D - о п е р а ц і є ю д о д а в а н н я
з рухомою комою, LD - з а в а н т а ж е н н я п о д в і й н о г о слова, a B R C C - у м о в н и й перехід за
деякою у м о в о ю (Conditional Code Branch).
В'язанка к о м а н д п р о ц е с о р а Crusoe о т р и м а л а назву молекули. Вона м а є д о в ж и н у
64/128 бітів та в м і щ у є ч о т и р и к о м а н д и ( ч о т и р и а т о м и ) . Усі атоми в м е ж а х молекули в и ­
конуються паралельно. Ф о р м а т м о л е к у л и п р я м о в и з н а ч а є з в ' я з о к атома і з к о н к р е т н и м
функціональним п р и с т р о є м , що з н а ч н о і с п р о щ у є , і п р и с к о р ю є апаратні з а с о б и . Самі
молекули п р о ц е с о р о п р а ц ь о в у є із з б е р е ж е н н я м черговості, т о б т о без в и к о р и с т а н н я
складних а п а р а т н и х засобів н е в п о р я д к о в а н о г о о п р а ц ю в а н н я . Для з а б е з п е ч е н н я е ф е к ­
тивного в и к о р и с т а н н я п р о ц е с о р а мінімізується кількість н е з а п о в н е н и х атомів, а у в и ­
падках несумісності атомів за паралельністю, на місце в і д с у т н ь о г о атома в с т а в л я є т ь с я
пуста операція.
П р о г р а м а Code Morphing є ф у н д а м е н т а л ь н о ю системою динамічної трансляції, що
транслює к о м а н д и однієї архітектури (в д а н о м у в и п а д к у КССК п р о ц е с о р а х86) в к о м а н д и
іншої архітектури (КДФК). П р о г р а м у Code M o r p h i n g р о з м і щ е н о в П З П п р о ц е с о р а і вона
є першою програмою, що виконується п р и з а в а н т а ж е н н і процесора. Рис. 5.29 ілюструє
зв'язок між кодом процесора х86, п р о г р а м о ю Code Morphing та я д р о м процесора Crusoe.

Рис. 5.29. КДФК (VLIW engine), Code Morphing, BIOS, операційна система
та прикладні програми в кодах процесора х86

З а в д я к и тому, що п р о г р а м а ф о р м у в а н н я коду КДФК, а саме, Code M o r p h i n g , ізолює


програми п р о ц е с о р а х86 (системні та п р и к л а д н і р а з о м із BIOS і о п е р а ц і й н о ю системою)
від апаратури п р о ц е с о р а Crusoe із п р и т а м а н н о ю й о м у системою к о м а н д КДФК, цю сис­
тему к о м а н д м о ж н а змінювати без ж о д н о г о в п л и в у на систему к о м а н д п р о ц е с о р а х86.
Але при зміні архітектури К Д Ф К п е в н и х змін з а з н а є і п р о г р а м а Code Morphing. П р о т е
зміни до п р о г р а м и ф о р м у в а н н я коду Code M o r p h i n g т р е б а в и к о н у в а т и л и ш е один раз на
кожну зміну архітектури ядра.
П р и х о в у в а н н я р е а л ь н о ї архітектури р і в н я м а ш и н н и х к о м а н д з а ш а р о м фірмової п р о ­
грами Code M o r p h i n g д о з в о л я є у н и к н у т и п р о б л е м , п р и т а м а н н и х ч и с т и м КДФК. Ч и с т і
КДФК з м у ш у ю т ь р о з р о б н и к а к о м п і л я т о р а в р а х о в у в а т и усі деталі р о б о т и конвеєра. П р и
198

ц ь о м у н а й м е н ш і зміни у конвеєрі в и м а г а ю т ь п е р е п р о е к т у в а н н я к о м п і л я т о р а (не зви­


ч а й н и й , а о п т и м і з у ю ч и й ) , що є н а д т о с к л а д н о ю р е с у р с о м і с т к о ю та кропіткою працею.
Зазначеної п р о б л е м и для п р о ц е с о р а Crusoe п р о с т о не існує. З погляду системних про­
г р а м Crusoe в и г л я д а є як с т а н д а р т н и й п р о ц е с о р х86.
О п и с а н а технологія віртуалізації а р х і т е к т у р и к о м п ' ю т е р а зі складною системою ко­
м а н д є п р и н ц и п о в о н о в и м і е ф е к т и в н и м м е т о д о м д е к о м п о з и ц і ї та в и р і ш е н н я складних
з а в д а н ь п р о е к т у в а н н я сучасних к о м п ' ю т е р і в . З а п р о п о н о в а н и й фірмою Трансмета про­
г р а м н о - а п а р а т н и й м е т о д п р о е к т у в а н н я з а б е з п е ч и в в д а л и й розподіл функцій процесора
м і ж його п р о г р а м н о ю та а п а р а т н о ю ч а с т и н а м и , і, т и м самим, д о з в о л и в з н а й т и компро­
міс м і ж вартістю та складністю, м і ж п р о д у к т и в н і с т ю та с п о ж и в а н о ю п о т у ж н і с т ю .
П р о г р а м а Code M o r p h i n g ф о р м у в а н н я коду КДФК т р а н с л ю є групи команд проце­
сора х86, а не к о ж н у в і д о к р е м л е н у команду, як у с у п е р с к а л я р н о м у процесорі. Зрозумі­
л о , щ о о п р а ц ю в а н н я групи к о м а н д р о з ш и р ю є діапазон дій п р о г р а м н о г о транслятора,
що дає й о м у м о ж л и в і с т ь в р а х о в у в а т и с е м а н т и к у ф р а г м е н т а коду, р а з о м із притаман­
н о ю ф р а г м е н т о в і к о р е л я ц і є ю п о м і ж сусідніми к о м а н д а м и . Саме це о б у м о в л ю є перева­
гу т р а н с л я ц і й н о ї технологій Crusoe. Б і л ь ш е того, с у п е р с к а л я р н и й п р о ц е с о р транслює
к о м а н д у к о ж н о г о разу, як її виконує. Crusoe в и к о н у є т р а н с л я ц і ю к о м а н д и одноразово,
зберігаючи результат т р а н с л я ц і ї у так з в а н і й т р а н с л я ц і й н і й кеш пам'яті. Коли виконан­
ня ф р а г м е н т а п р о г р а м и п р о ц е с о р а х86 п о в т о р ю є т ь с я , Crusoe не в и к о н у є повторну тран­
сляцію, а з а б и р а є п о т р і б н е з т р а н с л я ц і й н о ї кеш пам'яті. З р о з у м і л о , що "компільований"
ф р а г м е н т коду п р о ц е с о р а х86 в и к о н у є т ь с я ш в и д ш е від "інтерпретованого".
П р о г р а м н а , а не апаратна, р е а л і з а ц і я т р а н с л я ц і ї в і д к р и в а є нові м о ж л и в о с т і . Адже
а п а р а т н а р е а л і з а ц і я с к л а д н и х а л г о р и т м і в т р а н с л я ц і ї з б і л ь ш у є кількість транзисторів на
кристалі та с п о ж и в а н у п о т у ж н і с т ь . Crusoe в и к о н у є л и ш е о д н о р а з о в у повільну трансля­
цію п р и п е р ш о м у проході п р о г р а м и , а всі н а с т у п н і п р о х о д и здійснює ш в и д к о , що дозво­
л я є з н а ч н о п і д в и щ и т и складність т а е ф е к т и в н і с т ь п р о г р а м н о р е а л і з о в а н и х алгоритмів
трансляції, п і д в и щ и в ш и т и м с а м и м х а р а к т е р и с т и к и к о м п ' ю т е р н о ї системи.
З р о з у м і л о , що п р о г р а м а Code M o r p h i n g в и к о р и с т о в у є властивість локалізації (local­
ity of reference) в и б и р а н ь п р о г р а м н и х кодів будь-якої універсальної м а ш и н и . Апаратура
п р о ц е с о р а Crusoe о п р а ц ь о в у є о т р и м а н и й від Code M o r p h i n g м о л е к у л я р н и й код не хао­
т и ч н о , а в п о р я д к о в а н о , за п р и р о д н о ю чергою. Це г а р а н т у є в п о р я д к о в а н е опрацювання
о р и г і н а л ь н и х к о м а н д п р о ц е с о р а х86. С а м е молекули о д н о з н а ч н о визначають паралелізм
р і в н я м а ш и н н и х к о м а н д , т о м у апаратна р е а л і з а ц і я п р о ц е д у р и паралельного опрацюван­
ня спрощується.

5.8. Комп'ютери з явним паралелізмом виконання команд


Як ми в ж е п о б а ч и л и з матеріалу даного розділу, п л а н у в а н н я п о р я д к у обчислень є
д о с и т ь в а ж к и м з а в д а н н я м , яке д о в о д и т ь с я в и р і ш у в а т и при п р о е к т у в а н н і сучасного
комп'ютера. У с у п е р с к а л я р н і й архітектурі д л я р о з п і з н а в а н н я з а л е ж н о с т е й між команда­
ми з а с т о с о в у ю т ь с я д о с и т ь складні апаратні р і ш е н н я ( н а п р и к л а д , в Р6 і н а с т у п н и х про­
ц е с о р а х ф і р м и Intel для цього в и к о р и с т о в у є т ь с я буфер п е р е в п о р я д к о в у в а н н я команд
- Reorder Buffer). П р о т е р о з м і р и такого а п а р а т н о г о п л а н у в а л ь н и к а при збільшенні кіль­
кості ф у н к ц і о н а л ь н и х п р и с т р о ї в з р о с т а ю т ь в г е о м е т р и ч н і й прогресії. Тому суперскалярні
199

проекти з у п и н и л и с я на відмітці 5-6 о б р о б л ю в а н и х за ц и к л к о м а н д . Н а в і т ь К Д Ф К т е ж


далеко не з а в ж д и м о ж у т ь з а б е з п е ч и т и п о в н е з а п о в н е н н я м в ' я з а н о к к о м а н д - р е а л ь н е
з а в а н т а ж е н н я близько 6-7 к о м а н д в такті.
Вище зазначені п р о б л е м и п р и з н а ч е н а в и р і ш у в а т и нова а р х і т е к т у р а із н а з в о ю E P I C
(Explicitly Parallel Instruction Set Computing).
К л а с и ч н и й п р о ц е с о р , п е р е в а ж н о , н е с п р о м о ж н и й в и з н а ч и т и в з а є м о в п л и в (залеж­
ності даних, к е р у в а н н я і с т р у к т у р и ) п о м і ж віддаленими к о м а н д а м и п е р в и н н о г о (поки
що не розпаралеленого) п о т о к у к о м а н д . А д ж е п р о ц е с о р аналізує л и ш е той ф р а г м е н т п о ­
току команд, що р о з т а ш о в а н и й б е з п о с е р е д н ь о у п р о ц е с о р н о м у апаратному, т о м у і не­
великому, буфері к о м а н д . З і н ш о г о боку, п р о г р а м а - к о м п і л я т о р в и к о н у в а н о г о коду м а є
значно ш и р ш е поле з о р у та п р а к т и ч н о н е о б м е ж е н и й час (ще до в и к о н а н н я п р о г р а м и
процесором), аби наперед п р о а н а л і з у в а т и п е р в и н н и й п р о г р а м н и й код на п р е д м е т в и ­
явлення в к а з а н и х в и щ е з а л е ж н о с т е й та о п т и м і з у в а т и цей код під п о т р і б н у архітектуру.
В цілому, т у т ми м а є м о ситуацію, коли б а ж а н о все, що м о ж н а , підготувати заздалегідь
(зрозуміло, с т а т и ч н о , під час компіляції), а не п р и й м а т и с к л а д н и х а п а р а т н и х д и н а м і ч н и х
рішень в р е а л ь н о м у часі (при в и к о н а н н і п р о ц е с о р о м в ж е о с т а т о ч н о с к о м п і л ь о в а н о ї п р о ­
грами, із п р и т а м а н н и м и ш в и д к и м и р і ш е н н я м и , п о м и л к а м и та з в і д п о в і д н и м и ч а с о в и м и
витратами на їх в и п р а в л е н н я ) .
Архітектура E P I C передбачає п р я м е р о з п а р а л е л ю в а н н я в и к о н а н н я п р о г р а м и , т о б т о
компілятор мусить п о в і д о м л я т и п р о ц е с о р п р о те, я к а ч а с т и н а коду м о ж е в и к о н у в а т и с я
паралельно. О п т и м і з о в а н и й з а п о п е р е д н і м о з н а ч е н н я м к о м п і л я т о р E P I C аналізує п р о ­
грамний код, аби визначати, де та коли в і д б у д у т ь с я / н е в і д б у д у т ь с я у м о в н і переходи та
знайти і п о з н а ч и т и ті ч а с т и н и п р о г р а м н о г о коду, які м о ж н а в и к о н у в а т и п а р а л е л ь н о .
П р и к л а д о м п р о ц е с о р а з а р х і т е к т у р о ю E P I C є п р о ц е с о р ІА-64 ф і р м и Intel. В ц ь о м у
процесорі к о м а н д и , як і в архітектурі К Д С К , п а к у ю т ь с я к о м п і л я т о р о м в 128-розрядні
в'язанки команд. К о ж н а в ' я з а н к а к о м а н д п р о ц е с о р а ІА-64 м і с т и т ь т р и к о м а н д и та ша­
блон, як це п о к а з а н о на рис. 5.30.
127 0
Команда 2 Команда 1 Команда 0 Шаблон

Рис. 5.30. В'язанка команд процесора ІА-64

В шаблоні в к а з у є т ь с я з а л е ж н і с т ь м і ж к о м а н д а м и в одній в ' я з а н ц і та м і ж в ' я з а н к а м и ,


тобто вона вказує, чи м о ж н а о д н о ч а с н о в и к о н у в а т и і-ту (і= 0,1,2) к о м а н д у в ' я з а н к и m од­
ночасно з j - ю (j= 0,1,2) к о м а н д о ю в ' я з а н к и п. Кожній в'язанці в п р о ц е с о р і виділяється три
функціональних пристрої, т о б т о к о ж н і й команді в и д і л я є т ь с я один п р и с т р і й . Вміст поля
шаблону встановлюється або при генеруванні коду к о м п і л я т о р о м , або безпосередньо
системним програмістом, щ о п и ш е м о в о ю асемблер. П р о ц е с генерації коду в и к о н у ю т ь
так, аби гарантовано позбутися конфліктів типу RAW, W A W в м е ж а х к о м а н д н о ї групи.
К о ж н а з трьох к о м а н д в ' я з а н к и м а є формат, п р и в е д е н и й на р и с . 5.31.

39 27 26 21 20 14 13 7 6 0
Код операції Предикат Рг операнда 1 Рг операнда 2 Рг результату

Рис. 5.31. Формат кожної з трьох команд в'язанки


200

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


двох о п е р а н д і в та регістра результату. Р о з р я д н о с т і к о ж н о г о поля вказані на рисунку.
Поле п р е д и к а т а вказує н о м е р регістра предиката, я к и х в п р о ц е с о р і є 64. Предикація
- це спосіб о б р о б к и у м о в н и х переходів. В процесорі ІА-64 в и к о н у ю т ь с я обидві вітки
переходу. С у т ь способу предикації п о л я г а є в наступному. К о м а н д а м різних гілок одного
у м о в н о г о переходу в и д і л я ю т ь с я різні регістри предиката. Ці к о м а н д и в и к о н у ю т ь с я на
ф у н к ц і о н а л ь н и х п р и с т р о я х п р о ц е с о р а , а їх результати з а п и с у ю т ь с я до пам'яті тільки
після в и з н а ч е н н я вмісту регістрів п р е д и к а т а , т о б т о після о б ч и с л е н н я умови переходу.
Вмісту регістрів вітки переходу, якій відповідає умова переходу, п р и с в о ю є т ь с я значення
1, а вмісту регістрів вітки переходу, якій не відповідає у м о в а переходу, присвоюється
з н а ч е н н я 0. П р о ц е с о р п е р е в і р я є вміст регістрів п р е д и к а т у і з а п и с у є в п а м ' я т ь результати
тільки тих к о м а н д , які в к а з у ю т ь на регістри предикатів з о д и н и ч н и м вмістом.
А р х і т е к т у р а ІА-64 п і д в и щ у є рівень п а р а л е л ь н о г о в и к о н а н н я к о м а н д за рахунок того,
що в о н а д о з в о л я є на рівні м о в и асемблер п р я м о вказувати на паралелізм, реалізує в'я­
з а н к и , к о ж н а з я к и х містить т р и в и к о н у в а н і к о м а н д и та м і с т и т ь м н о ж и н у надлишкових
п р о г р а м н о - н е д о с я ж н и х регістрів, що д у б л ю ю т ь о п е р а н д и п о т о ч н и х команд, запобіга­
ючи т и м с а м и м з а в ч а с н о м у п е р е з а п и с у ц и х операндів.

5.9. Короткий зміст розділу


Розглянуті к о н ф л і к т и в конвеєрі к о м а н д та методи їх у с у н е н н я , оскільки вони знижу­
ють п р о д у к т и в н і с т ь к о н в е є р а , яка могла б б у т и д о с я г н у т а в н ь о м у в ідеальному випадку.
Б і л ь ш е того, к о н ф л і к т и м о ж у т ь з в е с т и н а н і в е ц ь всі з а т р а т и на с т в о р е н н я конвеєра ко­
манд. П р о в е д е н о аналіз методів з а п о б і г а н н я т р ь о м класам конфліктів: с т р у к т у р н и х , які
в и н и к а ю т ь з п р и ч и н и б р а к у ресурсів, коли апаратні з а с о б и не м о ж у т ь підтримувати всі
м о ж л и в і комбінації к о м а н д в р е ж и м і о д н о ч а с н о г о в и к о н а н н я з п е р е к р и т т я м , конфліктів
за д а н и м и , що в и н и к а ю т ь у разі, коли в и к о н а н н я наступної к о м а н д и з а л е ж и т ь від ре­
зультату в и к о н а н н я п о п е р е д н ь о ї к о м а н д и , та конфліктів к е р у в а н н я , які в и н и к а ю т ь при
к о н в е є р и з а ц і ї к о м а н д передачі к е р у в а н н я , які з м і н ю ю т ь з н а ч е н н я л і ч и л ь н и к а команд.
Н а в е д е н о п р и к л а д и с т р у к т у р к о н в е є р н и х п р о ц е с о р і в , у я к и х з м е н ш е н о ймовірність ви­
н и к н е н н я конфліктів.
Р о з г л я н у т о о с о б л и в о с т і з а п о б і г а н н я к о н ф л і к т а м в с у п е р с к а л я р н и х процесорах, які
є н а с т у п н и м к р о к о м в побудові в и с о к о п р о д у к т и в н и х п р о ц е с о р і в . С у п е р с к а л я р н и й п р о ­
ц е с о р м а є кілька ф у н к ц і о н а л ь н и х блоків і в и к о н у є кілька к о м а н д за один такт, тобто в
т а к о м у процесорі одна к о м а н д а в и к о н у є т ь с я м е н щ е як за один такт. П р и к л а д а м и супер­
с к а л я р н и х п р о ц е с о р і в є PowerPC ф і р м и I B M , UltraSparc фірми Sun, Alpha фірми D E C .
Але методи з а п о б і г а н н я к о н ф л і к т а м в т а к и х п р о ц е с о р а х є ще с к л а д н і ш и м и , ніж у конве­
є р н и х п р о ц е с о р а х , щ о в и м а г а є в і д п о в і д н о г о у с к л а д н е н н я а п а р а т н и х засобів.
Були р о з г л я н у т і а р х і т е к т у р и к о м п ' ю т е р і в , в я к и х відсутні конфлікти команд, а саме:
к о м п ' ю т е р и з довгим ф о р м а т о м к о м а н д и , а т а к о ж к о м б і н о в а н і архітектури, в я к и х по­
є д н а н о а р х і т е к т у р и К П С К та КДФК.
П р о б л е м и з а б е з п е ч е н н я д и н а м і ч н о г о п л а н у в а н н я в и к о н а н н я к о м а н д привели роз­
р о б н и к і в до а р х і т е к т у р и к о м п ' ю т е р а з я в н и м паралелізмом E P I C , п р и к л а д о м якої ста­
ла р о з р о б к а ІА-64 ф і р м и Intel. К о м п ' ю т е р и цієї архітектури о п р а ц ь о в у ю т ь паралельно
в ' я з а н к у к о м а н д , яка в к а з у є декілька о п е р а ц і й , щ о м о ж у т ь в и к о н у в а т и с я паралельно.
201

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


н у в а н н я паралельного в и к о н а н н я к о м а н д т у т п о к л а д е н о н а к о м п і л я т о р , я к и й здійснює
цю р о б о т у перед в и к о н а н н я м п р о г р а м и в к о м п ' ю т е р і .
Для з м е н ш е н н я в п л и в у у м о в н и х переходів на п р о д у к т и в н і с т ь к о н в е є р а в п р о ц е с о ­
рі ІА-64 введено предикатні к о м а н д и . В ц ь о м у п р о ц е с о р і всі к о м а н д и в и к о н у ю т ь с я , але
результати їх в и к о н а н н я з а п и с у ю т ь с я до р е г і с т р о в о г о ф а й л а л и ш е тоді, коли р о з р я д пре­
диката рівний 1. Результатом є те, що не п о т р і б н о з у п и н я т и к о н в е є р до в и я с н е н н я умови
переходу, хоча в и к о н у є т ь с я більша кількість к о м а н д .

5. 7 0. Література для подальшого читання


Конфлікти в конвеєрі к о м а н д та м е т о д и їх у с у н е н н я р о з г л я н у т і в р о б о т а х [7, 8,13, 14,
16,18-21]. В р о б о т а х [3,4,30-33] п р о в е д е н о аналіз методів з а п о б і г а н н я т р ь о х класів к о н ­
фліктів: с т р у к т у р н и х , конфліктів з а д а н и м и т а к о н ф л і к т і в к е р у в а н н я . О п и с с и м у л я т о р а
W i n D L X є на web-сторінці www.
В р о б о т а х [9, 10, 22-26] р о з г л я н у т о о с о б л и в о с т і з а п о б і г а н н я к о н ф л і к т а м в суперска
лярних п р о ц е с о р а х . Д л я аналізу о с о б л и в о с т е й р е а л і з а ц і ї засобів з а п о б і г а н н я конфлік­
там в с у п е р с к а л я р н и х п р о ц е с о р а х PowerPC ф і р м и I B M , UltraSparc ф і р м и Sun, Alpha фір­
ми D E C та і н ш и х д о ц і л ь н о п о ш у к а т и їх описи на web-сторінках ц и х фірм. В и к о р и с т а н н я
розподіленої буферної пам'яті (вікна к о м а н д ) д л я п е р е в п о р я д к у в а н н я к о м а н д з а п р о п о ­
новано в р о б о т а х [1, 27].
О б м е ж е н н я п а р а л е л і з м у р і в н я к о м а н д п р о а н а л і з о в а н о в [28, 29]. В р о б о т а х [3, 5, 6,
12, 15] д е т а л ь н о р о з г л я н у т і архітектури к о м п ' ю т е р і в , у я к и х відсутні к о н ф л і к т и команд,
а саме комп'ютерів з д о в г и м ф о р м а т о м к о м а н д и . З о к р е м а в р о б о т і [2] р о з г л я н у т і п и т а н ­
ня побудови п е р ш и х п р о ц е с о р і в о б р о б к и сигналів АР-120В ф і р м и FPS з а р х і т е к т у р о ю
КДФК. П р и н ц и п и п о б у д о в и к о м п і л я т о р і в КДФК^можна з н а й т и в [4, 11, 17].
І н ф о р м а ц і ю п р о к о м б і н о в а н і а р х і т е к т у р и , в я к и х п о є д н а н о а р х і т е к т у р и К П С К та
КДФК, м о ж н а з н а й т и в [5].
Архітектура к о м п ' ю т е р а з я в н и м п а р а л е л і з м о м E P I C о п и с а н а в [7].

5.11. Література до розділу 5


1. Anderson, D. W., F. J. Sparacio, and R. M. Tomasulo [1967]. "The I B M 360 Model 91: Processor
philosophy and instruction handling", I B M J. Research and Development 11:1 (January), 8-24.
2. Charlesworth, A. E. [ 1981 ]. "An approach to scientific array processing: The architecture design of
the AP-120B/FPS-164 family", Computer 14:12 (December), 12-30.
3. COLWELL, R. P., R. P. NIX, J. J. O ' D O N N E L L , D. B. PAPWORTH, A N D P. K. R O D M A N [1987].
"A V L I W architecture for a trace scheduling compiler", Proc. Second Conf. on Architectural Support for
Programming Languages and Operating Systems, I E E E / A C M (March), Palo Alto, Calif., 180-192.
4. Ellis, J. R. [1986]. Bulldog: A Compiler for V L I W Architectures, MIT Press, Cambridge, Mass.
5. FISHER, J. A. [1981]. "Trace scheduling: A technique for global microcode compaction", IEEE
Trans, on Computers 30:7 (July), 478 t90. A

6. FISHER, J. A. [1983]. "Very long instruction word architectures and ELI-512", Proc. Tenth Symp­
osium on Computer Architecture (June), Stockholm, 140-150.
7. Fisher, J. A. and S. M. Freudenberger [1992]. "Predicting conditional branches from previous runs
of a program", Proc. Fifth Conf. on Architectural Support for Programming Languages and Operating
Systems, I E E E / A C M (October), Boston, 85-95.
202

8. Hwu, W . - M . and Y. Patt [1986]. "HPSm, a high performance restricted data flow architecture having
minimum functionality", Proc. 13th Symposium on Computer Architecture (June), Tokyo, 297-307.
9. Johnson, M. [1990]. Superscalar Microprocessor Design, Prentice Hall, Englewood Cliffs, N.J.
10. JOUPPI, N. P. A N D D. W. W A L L [1989]. "Available instruction-level parallelism for superscalar
and superpipelined processors", Proc. Third Conf. on Architectural Support for Programming Languages
and Operating Systems, I E E E / A C M (April), Boston, 272-282.
11. Lam, M. [1988]. "Software pipelining: An effective scheduling technique for V L I W processors",
SIGPLAN Conf. on Programming Language Design and Implementation, A C M (June), Atlanta, Ga.,
318-328.
12. Mahlke, S. A., W. Y. Chen, W . - M . Hwu, B. R. Rau, and M. S. Schlansker [1992]. "Sentinel sched-
uling for V L I E and superscalar processors", Proc. Fifth Conf. on Architectural Support for Programming
Languages and Operating Systems (October), Boston, I E E E / A C M , 238-247.
13. McFarling, S. [1993] "Combining branch predictors", W R L Technical Note TN-36 (June), Digital
Western Research Laboratory, Palo Alto, Calif.
14. McFarling, S. and J. Hennessy [1986]. "Reducing the cost of branches", Proc. 13th Symposium on
Computer Architecture (June), Tokyo, 396-403.
15. N1COLAU, A. A N D J. A. Fisher [1984]. "Measuring the parallelism available for very long instr-
uction word architectures", IEEE Trans, on Computers C-33:ll (November), 968-976.
16. Pan, S.-T, K. So, and J. T. Rameh [1992]. "Improving the accuracy of dynamic branch prediction
using branch correlation", Proc. Fifth Conf. on Architectural Support for Programming Languages and
Operating Systems, I E E E / A C M (October), Boston, 76-84.
17. RAU, B. R., C D. GLAESER, A N D R. L. P1CARD [1982]. "Efficient code generation for horizontal
architectures: Compiler techniques and architectural support", Proc. Ninth Symposium on Computer
Architecture (April), 131-139.
18. Riseman, E. M. and C. C Foster [1972]. "Percolation of code to enhance parallel dispatching and
execution", IEEE Trans, on Computers C-2L12 (December), 1411-1415.
19. SMITH, A. and J. LEE [1984]. "Branch prediction strategies and branch-target buffer design",
Computer 17:1 (January), 6-22.
20. Smith, J. E. [1981]. "A study of branch prediction strategies", Proc. Eighth Symposium on Comp-
uter Architecture (May), Minneapolis, 135-148.
21. Smith, J. E. and A. R. Pleszkun [1988]. "Implementing precise interrupts in pipelined processors",
IEEE Trans, on Computers 37:5 (May), 562-573. This paper is based on an earlier paper that appeared in
Proc. 12th Symposium on Computer Architecture, June 1988.
22. Smith, M. D., M. Horowitz, and M. S. Lam [1992]. "Efficient superscalar performance through
boosting", Proc. Fifth Conf. on Architectural Support for Programming Languages and Operating Syste-
ms (October), Boston, I E E E / A C M , 248-259.
23. Smith, M. D., M. Johnson, and M. A. Horowitz [1989]. "Limits on multiple instruction issue".
24. SOHI, G. S. [1990]. "Instruction issue logic for high-performance, interruptible, multiple functi-
onal unit, pipelined computers", IEEE Trans, on Computers 39:3 (March), 349-359.
25. SOHI, G. S. A N D S. Vajapeyam [1989]. "Tradeoffs in instruction format design for horizontal
architectures", Proc. Third Conf. on Architectural Support for Programming languages and Operating
Systems, I E E E / A C M (April), Boston, 15-25.
26. T H O R L I N , J. F. [1967]. "Code generation for PIE (parallel instruction execution) computers",
Proc. Spring Joint Computer Conf. 27.
27. T O M A S U L O , R. M. [1967]. "An efficient algorithm for exploiting multiple arithmetic units", IBM
J. Research and Development 11:1 (January), 25-33.
28. WALL, D. W. [1991]. "Limits of instruction-level parallelism", Proc. Fourth Conf. on Architectu-
ral Support for Programming Languages and Operating Systems (April), Santa Clara, Calif, IEEE/ A C M ,
248-259.
203

29. Wall, D. W. [1993]. Limits of Instruction-Level Parallelism, Research Rep. 93/6, Western Research
Laboratory, Digital Equipment Corp. (November).
30. WEISS, S. and J. E. Smith [1984]. "Instruction issue logic for pipelined supercomputers", Proc.
11th Symposium on Computer Architecture (June), Ann Arbor, Mich., 110-118.
31. WEISS, S. and J. E. S M I T H [1987]. "A study of scalar compilation techniques for pipelined sup­
ercomputers", Proc. Second Conf. on Architectural Support for Programming Languages and Operating
Systems (March), I E E E / A C M , Palo Alto, Calif., 105-109.
32. Yeh, T. and Y. N. Patt [1992]. "Alternative implementations of two-level adaptive branch predicti­
on", Proc. 19th Symposium on Computer Architecture (May), Gold Coast, Australia, 124-134.
33. Y E H , T. A N D Y. N. Patt [1993]. "A comparison of dynamic branch predictors that use two levels
of branch history", Proc. 20th Symposium on Computer Architecture (May), San Diego, 257-266.

5.12. Питання до розділу 5


1. Назвіть причини необхідності забезпечення ефективного виконання команд в процесорі.
2. Назвіть три класи конфліктів у конвеєрі команд та причини їх появи.
3. Які є дві групи структурних конфліктів?
4. Наведіть приклад структурних конфліктів, які виникають через потребу порушення такто­
вої частоти роботи конвеєра.
5. Наведіть приклад структурних конфліктів, які виникають у зв'язку з необхідністю очіку­
вання на звільнення ресурсів комп'ютера.
6. Чому розробники допускають наявність структурних конфліктів?
7. Яка причина створення процесорів з неконвеєрними функціональними пристроями?
8. На який час потрібно призупинити роботу конвеєра команд при появі структурних конф­
ліктів?
9. Які є способи вирішення структурних конфліктів?
10. Коли виникає конфлікт за даними?
11. Назвіть три можливі конфлікти заданими.
12. Поясніть суть конфлікту "читання після запису".
13. Поясніть суть конфлікту "запис після читання".
14. Поясніть суть конфлікту "запис після запису".
15. Які можливі конфлікти за даними?
16. Які є методи зменшення впливу залежностей між даними на роботу конвеєра команд?
17. Що дає призупинення роботи конвеєра при виявленні конфлікту за даними?
18. Що дає застосування випереджувального пересилання при виявленні конфлікту за даними?
19. Як реалізується в конвеєрі команд випереджувальне пересилання?
20. Чи завжди є можливим випереджувальне пересилання?
21. Приведіть приклади можливих та неможливих випереджувальних пересилань.
22. Що роблять, оптимізуючи компілятори, щоб не допустити конфліктів за даними?
23. Які є ознаки наявності конфліктів за даними?
24. Для яких частин програми є ефективною статична диспетчеризація послідовності команд
під час компіляції?
25. Як здійснюється динамічна диспетчеризація послідовності команд у програмі під час ком­
піляції?
26. Поясніть суть методу перейменування регістрів.
27. Які є типи конфліктів керування?
28. Назвіть способи зниження втрат на вибірку команд переходу.
29. Поясніть суть способу обчислення виконавчої адреси команди переходу в ярусі декоду­
вання команди.
204

30. Поясніть суть способу використання буфера адрес переходів.


31. Поясніть суть способу використання буфера команд переходів.
32. Поясніть суть способу використання буфера циклу.
33. Назвіть способи зниження втрат на виконання команд умовного переходу.
34. Поясніть суть способу введення буфера попередньої вибірки з метою зниження втрат на
виконання команд умовного переходу.
35. Поясніть суть способу дублювання початкових ярусів конвеєра з метою зниження втрат
на виконання команд умовного переходу.
36. Поясніть суть способу затримки переходу з метою зниження втрат на виконання команд
умовного переходу.
37. Поясніть суть способу статичного передбачення переходу з метою зниження втрат на ви­
конання команд умовного переходу.
38. Назвіть методи статичного передбачення умовного переходу.
39. Поясніть суть методу повернення, який застосовується при статичному передбаченні
умовного переходу.
40. Поясніть суть методу профілювання, який застосовується при статичному передбаченні
умовного переходу.
41. Поясніть суть методу статичного передбачення умовного переходу, за яким результат пе­
реходу визначається кодом операції команди переходу.
42. Поясніть суть методу статичного передбачення умовного переходу, за яким результат пе­
реходу визначається напрямом переходу.
43. Поясніть суть динамічного передбачення переходу.
44. Що таке таблиця історії переходів? Як вона реалізується?
45. Наведіть однорівневу схему передбачення переходу з формуванням адреси таблиці історії
переходів в програмному лічильнику.
46. Наведіть однорівневу схему передбачення переходу з формуванням адреси таблиці історії
переходів у регістрі глобальної історії.
47. Наведіть однорівневу схему передбачення переходу з комбінованим формуванням адреси
таблиці історії переходів в програмному лічильнику та в регістрі глобальної історії.
48. Наведіть дворівневу схему передбачення переходу з використанням таблиці локальної
історії.
49. Наведіть структуру гібридної схеми передбачення переходу.
50. Проаналізуйте тотожність та розбіжність КДФК і суперскалярної архітектур.
51. Визначте місце суперскалярних і КДФК архітектур в ієрархії сучасних комп'ютерів.
52. Визначте та поясніть основні чинники, що обмежують ефективність КДФК архітектури.
53. Наведіть основні ідеї, покладені в основу архітектури ЕРІС.
Розділ 6

сАморитміьІшкона^
а&ра&шдотік
Операції о б р о б к и д а н и х ініціюються в і д п о в і д н и м и к о м а н д а м и о б р о б к и д а н и х . Д о
числа цих операцій входять:
• логічні операції (логічне м н о ж е н н я , логічне д о д а в а н н я , інверсія і т. д.) над р о з р я д а ­
ми слів, с к а л я р а м и та в е к т о р а м и ;
• операції зсуву ( п р а в о р у ч , ліворуч) над с к а л я р а м и та в е к т о р а м и ;
• операції в і д н о ш е н н я : м е н ш е , більше, рівне, м е н ш е - р і в н е , більше-рівне;
• а р и ф м е т и ч н і операції ( д о д а в а н н я , в і д н і м а н н я , м н о ж е н н я та ділення) над о д и н о ч ­
н и м и д а н и м и т а в е к т о р а м и даних;
• операції о б ч и с л е н н я е л е м е н т а р н и х ф у н к ц і й т и п у exp X, In X, Sin X, Cos X, arctg y/x,
S h X , C h X , піднесення д о степеня A ; m

• операції п е р е т в о р е н н я д а н и х ( п е р е т в о р е н н я із ф о р м а т у з ф і к с о в а н о ю в ф о р м а т з
рухомою комою і н а в п а к и , п е р е т в о р е н н я з д в і й к о в о - д е с я т к о в о г о коду в д в і й к о в и й і на­
впаки і т. д.);
• операції реорганізації масивів і в и з н а ч е н н я їх п а р а м е т р і в : с о р т у в а н н я , п о ш у к мак­
симуму або мінімуму, в и б і р з а д а н о г о масиву, з с у в елементів масиву, стиск масиву;
• операції о б р о б к и с и м в о л і в та стрічок символів: п о ш у к символу, зсув, заміна с и м в о ­
лів у стрічці, п а к у в а н н я стрічок символів, п о р і в н я н н я стрічок символів.
В останніх к о м п ' ю т е р а х у з в ' я з к у з ш и р о к и м в и к о р и с т а н н я м засобів телекомуніка-
цій та мультимедіа до складу о с н о в н и х о п е р а ц і й д о б а в и л и с я складні операції т и п у коду­
в а н н я , компресії, ш и ф р у в а н н я т о щ о .
В даному розділі р о з г л я н е м о основні а л г о р и т м и в и к о н а н н я в и щ е н а з в а н и х о п е р а ц і й ,
не вникаючи в п и т а н н я їх реалізації в комп'ютері.

6.1. Логічні операції


Д о складу к о м а н д о б р о б к и д а н и х в х о д и т ь в е л и к а кількість к о м а н д , які ініціюють
логічні операції. До їх числа входять операції булевої а л г е б р и : логічне м н о ж е н н я , до­
д а в а н н я , д о д а в а н н я по м о д у л ю два, інверсія і т. д. П р и ц ь о м у логічні о п е р а ц і ї м о ж у т ь
в и к о н у в а т и с ь над о к р е м и м и р о з р я д а м и слова, над о д и н о ч н и м и д а н и м и , а т а к о ж н а д
в е к т о р а м и даних.
Логічні операції передбачають побітову о б р о б к у даних. Коли г о в о р я т ь п р о логічну
операцію над п а р о ю слів, то м а є т ь с я на увазі, що п р о в о д я т ь с я окремі операції над кож­
ною парою біт, які входять до ц и х слів.
Розділ 6

Операції о б р о б к и д а н и х ініціюються в і д п о в і д н и м и к о м а н д а м и о б р о б к и даних. Д о


числа цих операцій входять:
• логічні операції (логічне м н о ж е н н я , логічне д о д а в а н н я , інверсія і т. д.) над р о з р я д а ­
ми слів, с к а л я р а м и та в е к т о р а м и ;
• операції зсуву ( п р а в о р у ч , ліворуч) над с к а л я р а м и та в е к т о р а м и ;
• операції в і д н о ш е н н я : м е н ш е , більше, рівне, м е н ш е - р і в н е , більше-рівне;
• а р и ф м е т и ч н і операції (додавання, в і д н і м а н н я , м н о ж е н н я та ділення) над о д и н о ч ­
ними д а н и м и та в е к т о р а м и даних;
• операції о б ч и с л е н н я е л е м е н т а р н и х ф у н к ц і й т и п у exp X, In X, Sin X, Cos X, arctg y/x,
S h X , C h X , піднесення д о степеня A ; m

• операції п е р е т в о р е н н я даних ( п е р е т в о р е н н я із ф о р м а т у з ф і к с о в а н о ю в ф о р м а т з
рухомою комою і н а в п а к и , п е р е т в о р е н н я з д в і й к о в о - д е с я т к о в о г о коду в д в і й к о в и й і на­
впаки і т. д.);
• операції реорганізації масивів і в и з н а ч е н н я їх п а р а м е т р і в : с о р т у в а н н я , п о ш у к мак­
симуму або мінімуму, в и б і р з а д а н о г о масиву, з с у в елементів масиву, стиск масиву;
• операції о б р о б к и с и м в о л і в та стрічок символів: п о ш у к символу, зсув, з а м і н а с и м в о ­
лів у стрічці, п а к у в а н н я стрічок символів, п о р і в н я н н я стрічок символів.
В останніх к о м п ' ю т е р а х у з в ' я з к у з ш и р о к и м в и к о р и с т а н н я м засобів телекомуніка-
цій та мультимедіа до складу о с н о в н и х о п е р а ц і й д о б а в и л и с я складні операції т и п у коду­
вання, компресії, ш и ф р у в а н н я т о щ о .
В даному розділі р о з г л я н е м о основні а л г о р и т м и в и к о н а н н я в и щ е н а з в а н и х о п е р а ц і й ,
не вникаючи в п и т а н н я їх реалізації в комп'ютері.

6.1. Логічні операції


Д о складу к о м а н д о б р о б к и д а н и х в х о д и т ь в е л и к а кількість к о м а н д , які ініціюють
логічні операції. До їх числа входять операції булевої а л г е б р и : логічне м н о ж е н н я , до­
д а в а н н я , д о д а в а н н я по модулю два, інверсія і т. д. П р и ц ь о м у логічні о п е р а ц і ї м о ж у т ь
виконуватись над о к р е м и м и р о з р я д а м и слова, над о д и н о ч н и м и д а н и м и , а т а к о ж н а д
векторами даних.
Логічні операції передбачають побітову о б р о б к у даних. Коли г о в о р я т ь п р о логічну
операцію над парою слів, то м а є т ь с я на увазі, що п р о в о д я т ь с я окремі операції над к о ж ­
ною парою біт, які входять до ц и х слів.
206

6.1.1. Операція заперечення


О п е р а ц і я з а п е р е ч е н н я (інверсія, НЕ, N O T ) є операцією над о д н и м о п е р а н д о м і озна­
чає, що біти із з н а ч е н н я м "0" н а б у в а ю т ь з н а ч е н н я " 1 " і навпаки. Для в і д о б р а ж е н н я дії ло­
гічної операції часто в и к о р и с т о в у ю т ь так з в а н і таблиці істинності. Табл. 6.1 є таблицею
істинності д л я о п е р а ц і ї з а п е р е ч е н н я .
Таблиця 6.1
біт операнда біт результату
0 1
1 0

Приклади:
N O T (1000 10100010 1100) = 0111 0101 1101 0011.
N O T Q l l O 1011 1010 0111) = 0001 01000101 1000.

6.1.2. Логічне І
Ця о п е р а ц і я ( з а г а л ь н о п р и й н я т е п о з н а ч е н н я I, A N D ) передбачає наявність як міні­
м у м д в о х о п е р а н д і в , н а з в е м о 'їх X та Y. Вона в и к о н у є п о р о з р я д н у кон'юнкцію змінних,
т о б т о о т р и м а н н я о д и н и ц і л и ш е тоді, коли всі вхідні змінні рівні одиниці. Відобразимо
з н а ч е н н я функції н а с т у п н о ю т а б л и ц е ю і с т и н н о с т і (табл. 6.2.)
Таблиця 6.2
бітХ бітУ біт результату
0 0 0
0 1 0
1 0 0
1 1 1

П р и к л а д и в и к о н а н н я операції логічного м н о ж е н н я п р и в е д е н о на рис. 6.1.

1101 0011 0010 1110 1100 0101 0010 1100


0011 0010 1111 0000 1100 1101 1111 0010
= 0001 0010 0010 0000 = 1100 0101 0010 0000

Рис. 6.1. Приклади виконання операції логічного множення

6.1.3. Логічн" АБО


Ц я о п е р а ц і я ( з а г а л ь н о п р и й н я т е п о з н а ч е н н я А Б О , ОЯ) т а к о ж передбачає наявність
як м і н і м у м д в о х о п е р а н д і в X та У. Вона в и к о н у є п о р о з р я д н у диз'юнкцію змінних, тобто
о т р и м а н н я о д и н и ц і тоді, коли хоча б одна вхідна змінна рівна одиниці. Відобразимо зна­
ч е н н я ф у н к ц і ї н а с т у п н о ю т а б л и ц е ю і с т и н н о с т і (табл. 6.3).
Таблиця 6.3
бітХ біт Y біт результату
0 0 0
0 1 1
207

1 0 1
1 1 1

Приклади в и к о н а н н я операції логічного д о д а в а н н я п р и в е д е н о на рис. 6.2.

1101 ООП 0010 1110 11000101 0010 1100


(Ж еж
ООП 0010 1111 0000 1100 1101 1111 0010
= 1111001111111110 = 1100 1101 1111 1110

Рис. 6.2. Приклади виконання операції логічного додавання

6.1.4. Виключне АБО


Також цю о п е р а ц і ю ще н а з и в а ю т ь д о д а в а н н я за модулем два (ХОЯ), оскільки вона
виконує п о р о з р я д н е д о д а в а н н я вхідних з м і н н и х з а модулем два. Ц я о п е р а ц і я в и к о н у є т ь ­
ся як мінімум над д в о м а о п е р а н д а м и X та У. В і д о б р а з и м о з н а ч е н н я функції н а с т у п н о ю
таблицею істинності (табл. 6.4).
Таблиця 6.4
бітХ біт У біт результату
0 0 0
0 1 1
1 0 1
1 1 0

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


рис. 6.3.

^ 1101 0011 0010 1110 ,^ 1100 0101 0010 1100


чїї) А \і І )
тт Л Х

0011 0010 1111 0000 " 1100 1101 1111 0010


= 0001 0010 0010 0000 = 1100 0101 0010 0000

Рис. 6.3. Приклади виконання операції логічного додавання за модулем два

6.2. Операції зсуву

6.2.1. Логічні зсуви

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


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

Логічний зсув ліворуч

6 6 6 "0"

Логічний зсув праворуч

СГ'
Ь ь ь о-

Рис. 6.4. Логічний зсув ліворуч та праворуч

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


або ліворуч, адреса о п е р а н д а та код зсуву, я к и й в к а з у є в е л и ч и н у зсуву, тобто кількість
р о з р я д і в , на які м а є б у т и п р о в е д е н и й з с у в . Я к щ о о п е р а н д п о з н а ч и т и через X, а код зсуву
через У, то результат X в и к о н а н н я операції буде р і в н и м X = X 2 , де знак "+" відповідає
+ / у

зсуву ліворуч, а з н а к "-" - п р а в о р у ч .

6.2.2. Арифметичні зсуви

А р и ф м е т и ч н і з с у в и д у ж е подібні до п о п е р е д н і х (логічних), але в о н и м а ю т ь таку особ­


ливість, як р о з м н о ж е н н я знака при зсуві п р а в о р у ч та з б е р е ж е н н я знака п р и зсуві ліво­
руч (рис. 6.5).

•-^^ Арифметичний зсув ліворуч

Ч б с О О О «

Арифметичний зсув праворуч

0 У О О О »•

Рис. 6.5. Арифметичний зсув ліворуч та праворуч

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


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

6.2.3. Циклічні зсуви

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


д о п и с у ю т ь с я з і н ш о г о його б о к у (рис. 6.6).
209

Ц и к л і ч н и й зсув ліворуч

Рис. 6.6. Циклічний зсув ліворуч та праворуч

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


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

6.3. Операції відношення

6.3.1. Порівняння двійкових кодів на збіжність


О п е р а ц і я п о р і в н я н н я д в і й к о в и х кодів на з б і ж н і с т ь дає л о г і ч н и й результат, р і в н и й
одиниці, я к щ о коди збігаються. В і н ш и х в и п а д к а х з н а ч е н н я р е з у л ь т а т у рівне нулю. Ви­
конувана ф у н к ц і я в и з н а ч а є т ь с я н а с т у п н и м булевим р і в н я н н я м :
п
Z = A N D ((X. A N D Y.) O R ( N O T ( X ) A N D NOT(Y.))),
i=0
де і = 0, 1 ... n - н о м е р и р о з р я д і в чисел X та Y, я к і п о р і в н ю ю т ь с я , Z - р о з р я д р е ­
зультату.

6.3.2. Визначення старшинства двійкових кодів


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

НЗгм. 371.
210

6.4. Арифметичні операції


К о м а н д и о б р о б к и д а н и х т а к о ж ініціюють в и к о н а н н я а р и ф м е т и ч н и х операцій. Ц е
операції д о д а в а н н я , в і д н і м а н н я , м н о ж е н н я та ділення над ч и с л а м и , представленими в
ф о р м а т а х з ф і к с о в а н о ю та р у х о м о ю комою. П р и ц ь о м у а р и ф м е т и ч н і операції т а к о ж мо­
ж у т ь в и к о н у в а т и с ь як над с к а л я р н и м и д а н и м и , так і над в е к т о р а м и .
До а р и ф м е т и ч н и х належать т а к о ж наступні операції над о д и н о ч н и м и операндами:
• в з я т т я абсолютної в е л и ч и н и від операнда;
• інверсія знака операнда;
• п р и р о щ е н н я о п е р а н д а на о д и н и ц ю ;
• з м е н ш е н н я о п е р а н д а на о д и н и ц ю .
М е т о д и реалізації а р и ф м е т и ч н и х операцій в к о м п ' ю т е р а х в и б и р а ю т ь з в р а х у в а н н я м
потрібної швидкодії, ф о р м а т у п р е д с т а в л е н н я чисел, системи ч и с л е н н я та інших техні-
к о - е к о н о м і ч н и х і с и с т е м н и х ф а к т о р і в . Критерієм в и б о р у методу з а з в и ч а й є досягнен­
ня м і н і м а л ь н и х затрат о б л а д н а н н я , м а к с и м а л ь н о ї швидкодії або о п т и м а л ь н о г о співвід­
н о ш е н н я затрат о б л а д н а н н я і швидкодії. Існує велика кількість алгоритмів в и к о н а н н я
а р и ф м е т и ч н и х о п е р а ц і й в комп'ютері. В д а н о м у розділі р о з г л я н е м о л и ш е основні алго­
р и т м и , а п и т а н н я їх м о д и ф і к а ц і ї та реалізації будуть р о з г л я н у т і в н а с т у п н и х розділах.

6.4.1. Додавання двійкових чисел без знаків


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

S. = X XOR у. XOR с.
с._, = (х. AND у) OR (х. AND с.) OR (у. AND с.)
с
о= °
де: S. - і-тий р о з р я д с у м и , х., у. - і-ті р о з р я д и п е р ш о г о та другого доданків відповідно,
с - р о з р я д переносу.
Ці ф о р м у л и о т р и м а н і з н а с т у п н о ї таблиці істинності (табл. 6.5).
Таблиця 6.5
с. X. У, S.
1 і
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
211

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


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

0 1 1 0 10 11 10 1 1 0 0 11
0 1 0 0 0 0 0 1 1 1 0 10 1 1 0

10 10 1 1 0 0 1 0 0 0 1 0 0 1
| Переповнення [

Рис. 6.7. Приклади виконання операції додавання двійкових чисел без знаків

П о з н а ч и м о о п е р а т о р в и к о н а н н я операції о д н о р о з р я д н о г о д в і й к о в о г о д о д а в а н н я від­
повідно до табл. 6.5 з н а к о м суми, як це п о к а з а н о на рис. 6.8.

Хі У'

Сі+1
X

Рис. 6.8. Оператор однорозрядного двійкового додавання

Тут 8. - і-й р о з р я д суми, х, у. - і-ті р о з р я д и п е р ш о г о та другого доданків відповідно,


с. та с - відповідно і-й та (і+1)-й р о з р я д и переносу. Тоді г р а ф а л г о р и т м у п - р о з р я д н о г о
додавання буде мати вигляд, п о к а з а н и й на рис. 6.9. П о к а з а н и й на рис. 6.9. а л г о р и т м на­
зивається а л г о р и т м о м д о д а в а н н я д в і й к о в и х чисел з п о с л і д о в н и м п е р е н о с о м , оскільки
перенос п р о х о д и т ь через всі о п е р а т о р и о д н о р о з р я д н о г о д в і й к о в о г о д о д а в а н н я .
Хп-2 уп-2 хо уо

\1
1

Сп-11
11
•* X - X X

Рис. 6.9. Граф алгоритму п-розрядного додавання двійкових чисел з послідовним переносом

Вхідними д а н и м и т у т є двійкові числа х ,, х _, х та у , у , 0 у , а вихідним 0

- двійкове число Б ,, $ 5 , яке є сумою вхідних чисел. П о к а з а н и й а л г о р и т м д о д а в а н ­


0

ня є доволі п р о с т и м . Недоліком представленого а л г о р и т м у є його с у т т є в а часова склад­


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

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


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

6 . 4 . 2 . Додавання двійкових чисел із знаками


Як ми вже бачили в попередньому розділі, існує ч о т и р и методи представлення п-роз-
р я д н и х чисел із з н а к а м и : в прямому, о б е р н е н о м у та д о п о в н я л ь н о м у кодах, а т а к о ж із
з м і щ е н н я м . В п р я м о м у коді с т а р ш и й р о з р я д п р е д с т а в л я є знак числа, а н а с т у п н і п-1 р о з ­
р я д и п р е д с т а в л я ю т ь м о д у л ь числа. В о б е р н е н о м у та д о п о в н я л ь н о м у кодах додатні числа
м а ю т ь те ж саме п р е д с т а в л е н н я , що і в п р я м о м у . П р е д с т а в л е н н я ж в і д ' є м н и х чисел тут
є і н ш и м . В о б е р н е н о м у коді від'ємні числа п р е д с т а в л я ю т ь с я ш л я х о м інверсії їх р о з р я ­
дів, а в д о п о в н я л ь н о м у коді крім того до м о л о д ш о г о р о з р я д у о б е р н е н о г о коду додається
о д и н и ц я . В п р е д с т а в л е н н і із з м і щ е н н я м всі числа, як додатні так і від'ємні, додаються до
з м і щ е н н я і о т р и м а н і с у м и п р е д с т а в л я ю т ь с я як з в и ч а й н і числа без знаків. Так від'ємне
ч и с л о к буде п р е д с т а в л е н е як к + Ь > - 0, де Ь - з м і щ е н н я . Т и п о в и м з н а ч е н н я м з м і щ е н н я
в и б и р а є т ь с я ч и с л о 2 - 1.
П

П р и к л а д : в и к о р и с т о в у ю ч и ч о т и р и р о з р я д н у сітку (п = 4), п р е д с т а в и м о в описаних


в и щ е кодах ч и с л о к = - 3 (або в двійковій системі к = - 0 1 Ц ) . В п р я м о м у коді к = 1011 , 2

п р и ч о м у с т а р ш и й р о з р я д є з н а к о в и й . В о б е р н е н о м у коді к =1100 , а в д о п о в н я л ь н о м у
2

коді к = 1101 - Д л я системи із з м і щ е н н я м , коли з м і щ е н н я Ь=2" - 1=8, м а є м о к = 0101 .


2 2

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


аналізу знаків чисел. Я к щ о з н а к и однакові, то модулі чисел додаються, а результату при­
с в о ю є т ь с я їх з н а к до п р о в е д е н н я д о д а в а н н я . Я к щ о ж їх з н а к и різні, то модулі чисел відні­
м а ю т ь с я , а р е з у л ь т а т у п р и с в о ю є т ь с я знак більшого за модулем числа, або знак "+", я к щ о
модулі чисел є р і в н и м и .
Д о д а в а н н я чисел, п р е д с т а в л е н и х в о б е р н е н о м у та п р я м о м у кодах, не з а л е ж и т ь від їх
знаків і п р о в о д и т ь с я так само як д о д а в а н н я д о д а т н и х чисел в п р я м о м у коді з тією різ­
ницею, що п р и д о д а в а н н і чисел, п р е д с т а в л е н и х в о б е р н е н о м у коді, необхідно перенос з
с т а р ш о г о р о з р я д у п о д а в а т и на вхід п е р е н о с у м о л о д ш о г о розряду. П р е д с т а в л е н н я в до­
п о в н я л ь н о м у коді в и к о р и с т о в у є т ь с я з н а ч н о ш и р ш е , н і ж в оберненому, оскільки при до­
д а в а н н і чисел т у т п е р е н о с із с т а р ш о г о р о з р я д у п р о с т о ігнорується. Н а п р и к л а д , додавши
5+(-2) в д о п о в н я л ь н о м у коді м а є м о 0101 + 1110 = 0011 . Тобто о т р и м а н и й п р а в и л ь н и й
2 2 2

результат 3 п р и і г н о р у в а н н і п е р е н о с о м із с т а р ш о г о р о з р я д у . Я к щ о ж додати ті ж самі


числа в о б е р н е н о м у коді о т р и м а є м о 0101 + 1101 + 1 = 0011 . Тобто т а к о ж о т р и м а н и й
2 2 2

п р а в и л ь н и й р е з у л ь т а т 3 п р и в р а х у в а н н і п е р е н о с у із с т а р ш о г о р о з р я д у . Цей п е р е н о с
називається циклічним. Додавання до отриманої суми одиниці циклічного переносу
н е в и к л и к а є п о в т о р н о г о ц и к л і ч н о г о п е р е н о с у . Н а в е д е н и й п р и к л а д н а г л я д н о ілюструє
р и с . 6.10.
214

Таблиця 6.6
ь. X. Уі Б
0 0 0 0 0
0 0 1 1 1
0 1 0 1 0
0 1 1 0 0
1 0 0 1 1
1 0 1 0 1
1 1 0 0 0
1 1 1 1 1

Де: 5 - і-й р о з р я д різниці, х, у. - і-ті р о з р я д и з м е н ш у в а н о г о та від'ємника відповідно,


Ь. - р о з р я д з а п о з и ч е н н я .
П р и к л а д и в и к о н а н н я операції в і д н і м а н н я д в і й к о в и х чисел без знаків приведено на
рис. 6.12.
0 1 1 і 0 0
1
1 1 1 о 1 і 0 0 1 1
1 1

0 1 0 0 0 1 0 1 1 1 0 1 0 1 1 0

0 0 10 1 1 1 0 1 1 0 1 1 1 0 1
Переповнення

Рис. 6.12. Приклади виконання операції додавання двійкових чисел без знаків

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


ти і н ш и й метод: п о т р і б н о з м і н и т и знак від'ємника, всі його р о з р я д и потрібно інверту­
вати, а для д о п о в н я л ь н о г о коду, крім того, з б і л ь ш и т и від'ємник на одиницю молодшого
розряду, і тоді п р о с т о додати до з м е н ш у в а н о г о о т р и м а н е ч и с л о Б = х + (ЫОТ(у) + 1 м.р.).

6.4.4. Множення двійкових чисел


М н о ж е н н я м о ж е п р о в о д и т и с ь в п р я м о м у , о б е р н е н о м у та д о п о в н я л ь н о м у кодах. Знак
результату операції м н о ж е н н я м о ж н а визначати о к р е м о . Для цього використовується
о п е р а ц і я ХСЖ над з н а к о в и м и р о з р я д а м и с п і в м н о ж н и к і в відповідно до табл. 6.7.
Таблиця 6.7
Знак
знак X знак У
результату
0 0 0
0 1 1
1 0 1
1 1 0

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

цедура м н о ж е н н я в обох в и п а д к а х та ж сама. П р и в и к о н а н н і м н о ж е н н я о п е р а н д і в , пред­


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

6.4.4.1. Множення цілих двійкових чисел без знаків

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

то результат Ъ м н о ж е н н я д в о х цілих д в і й к о в и х чисел без знаків в и з н а ч а є т ь с я з в и ­


разу:

2 = ХУ = Уі2' = ХУ 2° + ХУ 2 +... + ЛТ„_, 2 "


0 Х
і 1 ч)

3 наведеного в и р а з у в и д н о , що о п е р а ц і я м н о ж е н н я д в і й к о в и х чисел з в о д и т ь с я до
операції логічного м н о ж е н н я м н о ж е н о г о ( м н о ж е н е - п е р ш и й м н о ж н и к ) на р о з р я д и
м н о ж н и к а та п і д с у м о в у в а н н я о т р и м а н и х результатів з їх з с у в о м на кількість р о з р я д і в ,
рівну відповідному п о к а з н и к у с т у п е н я у виразі. Граф а л г о р и т м у м н о ж е н н я м а є вигляд,
показаний на рис. 6.13.

Y0 Y1 Y2 Y(n-1) X

I XY
Рис. 6.13. Граф алгоритму множення

Лінійка операторів A N D ф о р м у є п n - р о з р я д н и х результатів логічного м н о ж е н н я


множеного на р о з р я д и м н о ж н и к а , які з с у в а ю т ь с я п р а в о р у ч на R. (і = 1, 2, п-1) р о з ­
рядів. Ці результати н а з и в а ю т ь с я ч а с т к о в и м и д о б у т к а м и . О п е р а т о р із з н а к о м д о д а в а н н я
тут означає багатомісну о п е р а ц і ю д о д а в а н н я ч а с т к о в и х д о б у т к і в .
216

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

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


від т и п у в и к о р и с т о в у в а н и х о п е р а т о р і в д о д а в а н н я . Ц е м о ж у т ь б у т и з о к р е м а оператори
п о п а р н о г о п - р о з р я д н о г о д о д а в а н н я д в о х чисел, о п е р а т о р и п о п а р н о г о о д н о р о з р я д н о г о
д о д а в а н н я д в о х чисел, о п е р а т о р и багатомісного п а р а л е л ь н о г о д о д а в а н н я чисел і т. д.
Я к щ о в и к о р и с т о в у в а т и о п е р а т о р и п о п а р н о г о п - р о з р я д н о г о д о д а в а н н я двох чисел, тобто
двох ч а с т к о в и х добутків, т о м о ж у т ь бути з а п р о п о н о в а н і н а с т у п н і а л г о р и т м и :
• а л г о р и т м послідовного п о п а р н о г о д о д а в а н н я ч а с т к о в и х добутків, о т р и м а н и х по­
ч и н а ю ч и з аналізу м о л о д ш и х р о з р я д і в м н о ж н и к а ;
• а л г о р и т м послідовного п о п а р н о г о д о д а в а н н я ч а с т к о в и х добутків, о т р и м а н и х по­
ч и н а ю ч и з аналізу с т а р ш и х р о з р я д і в м н о ж н и к а ;
• а л г о р и т м п а р а л е л ь н о г о п о п а р н о г о д о д а в а н н я ч а с т к о в и х добутків з використан­
н я м с т р у к т у р и бінарного дерева.
Граф а л г о р и т м у послідовного п о п а р н о г о д о д а в а н н я часткових добутків, отриманих
п о ч и н а ю ч и з аналізу м о л о д ш и х р о з р я д і в м н о ж н и к а , п о к а з а н и й на рис. 6.14.

ХУ(гИ) ХУ4 ХУз ХУг ХУі ХУо

Цп-1) 14 1.3 12
1"ОДД 1 К
ОДД2

ОДД З

ОДД 4

1
ОДД(п-1)
Т
7лпЛ 2п-1 2а 2-і 22 2: 2о
Рис. 6.14. Граф алгоритму послідовного попарного додавання часткових добутків,
отриманих починаючи з аналізу молодших розрядів множника

Тут п о с л і д о в н о з'єднані о п е р а т о р и д в о м і с н о г о (попарного) д о д а в а н н я (ОДД), причо­


му часткові д о б у т к и п о д а ю т ь с я д л я д о д а в а н н я із з м і щ е н н я м на і (1^, Ц, .. Ь ,.) р о з р я ­
(п

дів л і в о р у ч . М о л о д ш и й р о з р я д р е з у л ь т а т у к о ж н о г о і-го О Д Д ( О Д Д О Д Д , , О Д Д
]; ( п ) є
в і д п о в і д н и м р о з р я д о м д о б у т к у Ъ., а н у л ь о в и й р о з р я д д о б у т к у є р і в н и м м о л о д ш о м у р о з ­
р я д у п е р ш о г о ч а с т к о в о г о добутку. Р о з р я д и д о б у т к у від Х - г о до2п -то о т р и м у ю т ь с я з
виходів ( п - І ) - г о о п е р а т о р а ОДД, п о ч и н а ю ч и з другого виходу.
П о д і б н и м до р о з г л я н у т о г о є а л г о р и т м послідовного п о п а р н о г о д о д а в а н н я часткових
добутків, о т р и м а н и х п о ч и н а ю ч и з аналізу с т а р ш и х р о з р я д і в м н о ж н и к а , г р а ф якого по­
к а з а н о на рис. 6.15.
277

ХУ(п-і) ХУ(п-2) ХУ(п-З) ХУ(п-л) ХУ(п-5) ХУс

і ОДД 1
І" Я2 яз Я (п-1)

ОДД 2

ОДД з

ОДД 4

ОДД (п-1)
т
ЗЬп-1

Рис. 6.15. Граф алгоритму послідовного попарного додавання часткових добутків,


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

Р і з н и ц я в тому, що т у т часткові д о б у т к и з м і щ у ю т ь с я на і (1^, Я , . ...Рч., Я ) розрядів


2 (п

праворуч, а це в и м а г а є р о з ш и р е н н я на один біт р о з р я д н о с т і к о ж н о г о і-го О Д Д в порів­


нянні з (і-І)-м.
О б и д в а р о з г л я н у т і а л г о р и т м и в и м а г а ю т ь в и к о н а н н я п о с л і д о в н о п-1 д о д а в а н н я , т о б ­
то послідовного в и к о н а н н я ОДД, п р и ч о м у в д р у г о м у а л г о р и т м і ОДД є о б ч и с л ю в а л ь н о
складнішими.
Алгоритм паралельного попарного додавання часткових добутків з використанням
с т р у к т у р и б і н а р н о г о дерева в и м а г а є в и к о н а н н я л и ш е \ogri п о с л і д о в н и х д о д а в а н ь за ра­
хунок р о з п а р а л е л е н н я обчислень. Граф ц ь о г о а л г о р и т м у п о к а з а н о на рис. 6.16.

ХУ п-і)
( ХУ -2)
(п
ХУ 3 ХУ 2
ХУі ХУо

І
|цп-1) |цп-2)
ОДД п/2 І •
^3 ||_2
,1" 1,
ОДД 2 ОДД1

ОДД п/4
£
ОДД п/2-1

і і_
ОДД (п-1)

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


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

П р и ц ь о м у на рис. 6.16 часткові м н о ж н и к и з м і щ у ю т ь с я л і в о р у ч , як на рис. 6.14, хоча


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

р я д н о г о д в і й к о в о г о д о д а в а н н я . Ц е д о з в о л я є п о в н і ш е врахувати о с о б л и в о с т і порозряд-
ної о б р о б к и д а н и х та з м е н ш и т и о б ч и с л ю в а л ь н у складність алгоритмів, т о б т о кількість
в и к о н у в а н и х о п е р а ц і й . Для ц ь о г о в и п а д к у р о з р о б л е н а велика кількість алгоритмів до­
д а в а н н я ч а с т к о в и х д о б у т к і в . Н и ж ч е р о з г л я н у т і н а й у ж и в а н і ш і а л г о р и т м и . Найвідоміши-
ми серед м а т р и ч н и х а л г о р и т м і в , які б а з у ю т ь с я на в и к о р и с т а н н і операторів двомісного
о д н о р о з р я д н о г о д в і й к о в о г о д о д а в а н н я , є а л г о р и т м и з г о р и з о н т а л ь н и м та діагональним
р о з п о в с ю д ж е н н я м п е р е н о с у та а л г о р и т м и Дадда і Уоллеса.
Д л я н а о ч н о с т і о б м е ж и м о с я ч о т и р и р о з р я д н и м и ч и с л а м и . В и к о н а н н я багатомісної
операції д о д а в а н н я ч а с т к о в и х д о б у т к і в для двох ч о т и р и р о з р я д н и х чисел А та В, де А =
а{і ар. \ В = Ьфрф м о ж н а п р е д с т а в и т и у вигляді, п о к а з а н о м у на рис. 6.17.
2 д 0

2 аф + 2 аф + 2 аф + 2°аф
3
0
2
0
і
и и

2 аф 4
1 + 2 аф +2 о Ь +2 аф
3
і
2
} 1
1
]

2 афі
2 +2 а Ь4
2 2 +2' аЬ х 2 +2 а Ь 2
п 2

2 аф. + 2 аф, + 2 аф + 2 а Ь
6 5 4
г
3
0 3

2 г
7
7 +2 г л
6 +2 2 5
3 +2 г
4
4 +2 г
3
3 +2 г 2
2 +2% +2°гп

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


для двох чотирирозрядних чисел

П е р ш и й р я д о к даного в и р а з у п р е д с т а в л я є п е р ш и й ч а с т к о в и й добуток, другий - дру­


гий, і т а к далі. О к р е м і часткові д о б у т к и ab, як це було п о к а з а н о р а н і ш е на рис. 6.13,
о т р и м а н і з а д о п о м о г о ю елементів A N D . Д о д а в а н н я ч а с т к о в и х д о б у т к і в з в о д и т ь с я д о до­
д а в а н н я р о з р я д і в ч а с т к о в и х д о б у т к і в з о д н а к о в и м и в а г а м и (по с т о в п ц я х ) з в р а х у в а н н я м
переносів з м о л о д ш и х р о з р я д і в .
На рис. 6.18 з о б р а ж е н о г р а ф а л г о р и т м у в и к о н а н н я багатомісної операції додаван­
ня ч а с т к о в и х д о б у т к і в з г о р и з о н т а л ь н и м р о з п о в с ю д ж е н н я м п е р е н о с у п р и використанні
о п е р а т о р і в о д н о р о з р я д н о г о д в і й к о в о г о д о д а в а н н я , я к и й с и н т е з о в а н и й на основі графа
а л г о р и т м у п о с л і д о в н о г о п о п а р н о г о д о д а в а н н я ч а с т к о в и х д о б у т к і в , о т р и м а н и х починаю­
чи з аналізу м о л о д ш и х р о з р я д і в м н о ж н и к а , я к и й п о к а з а н и й на рис. 6.14.
аЛ а Д

L IX XX ХА

Т
1

2,
Рис. 6.18. Граф алгоритму паралельного матричного виконання багатомісної операції
додавання часткових добутків з горизонтальним розповсюдженням переносу
219

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


нання повного о д н о р о з р я д н о г о д в і й к о в о г о д о д а в а н н я , п р е д с т а в л е н и й на рис. 6.8, де аЬ
- вхідні дані; г. - сума, а з н а к о м с у м и з д в о м а входами (три к р а й н і зліва о п е р а т о р и )
позначено о п е р а т о р в и к о н а н н я н е п о в н о г о о д н о р о з р я д н о г о д в і й к о в о г о д о д а в а н н я , коли
відсутній вхідний перенос, що с п р о щ у є а л г о р и т м д о д а в а н н я . Цей о п е р а т о р в и к о н у є опе­
рації відповідно до табл. 6.8. На рис. 6.18 п е р е н о с и не п о з н а ч е н о з м е т о ю с п р о щ е н н я
сприйняття.
Таблиця 6.8
X У, Z Си,
1 І
0 0 0 0
0 1 1 0
і 0 1 0
і 1 0 1
Його р о б о т у м о ж н а описати н а с т у п н и м и ф о р м у л а м и :
Z = х. XOR у.
с. , = х AND у.
О б ч и с л ю в а л ь н а складність даного а л г о р и т м у рівна: п - п о п е р а ц і й д в о м і с н о г о од­2

н о р о з р я д н о г о двійкового д о д а в а н н я [п - 2п о п е р а ц і й п о в н о г о та п о п е р а ц і й н е п о в н о ­
2

го двомісного о д н о р о з р я д н о г о д в і й к о в о г о д о д а в а н н я ) . Кількість о п е р а т о р і в двомісного


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

U 11 И
а.Ь, аф„ о,Л, а,Л, u. h
: D a.b t u b,
Q */„/>, aj^

Xx H x і—
4- x
aj>. ah.
il 1 A
X x *J
X X
"A

X X X X

Рис. 6.19. Граф алгоритму паралельного матричного виконання багатомісної операції


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

О б ч и с л ю в а л ь н а складність д а н о г о а л г о р и т м у рівна: п - п о п е р а ц і й д в о м і с н о г о од­


2

н о р о з р я д н о г о двійкового д о д а в а н н я (п - 2п о п е р а ц і й п о в н о г о та п о п е р а ц і й н е п о в н о г о
2

двомісного о д н о р о з р я д н о г о д в і й к о в о г о д о д а в а н н я ) . Кількість о п е р а т о р і в двомісного од­


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

в і д п о в і д н о д о г р а ф а а л г о р и т м у п о с л і д о в н о г о п о п а р н о г о д о д а в а н н я часткових добутків,
о т р и м а н и х п о ч и н а ю ч и з аналізу с т а р ш и х р о з р я д і в м н о ж н и к а , п о к а з а н о г о на рис. 6.15.
На рис. 6.20 п о к а з а н о г р а ф алгоритму Дадда в и к о н а н н я багатомісної операції додаван­
ня часткових добутків, п о б у д о в а н и й на основі графа а л г о р и т м у паралельного попарного
д о д а в а н н я часткових добутків з в и к о р и с т а н н я м с т р у к т у р и бінарного дерева (рис. 6.16).
«А а,Ь.

ІХ хх

Рис. 6.20. Граф алгоритму Дадда виконання багатомісної операції


додавання часткових добутків

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


2

н о р о з р я д н о г о д в і й к о в о г о д о д а в а н н я (п - 2п о п е р а ц і й п о в н о г о та п операцій неповно­
2

го д в о м і с н о г о о д н о р о з р я д н о г о д в і й к о в о г о д о д а в а н н я ) . Кількість операторів двомісного


о д н о р о з р я д н о г о д в і й к о в о г о д о д а в а н н я на к р и т и ч н о м у ш л я х у рівна 2п - 2.

6.4.4.3. Множення двійкових чисел із знаками

П р и м н о ж е н н і чисел, п р е д с т а в л е н и х в о б е р н е н о м у коді, н а й п р о с т і ш е перевести мно­


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

2 = ХУ = Х^(У„- - О М
2
' -Х&і ~УХ " +Х(У -У)2' + ...+ Х(У, _ - У „ _ ) 2 "
2
г і і 2
( Ч)

З н а ч е н н я р о з р я д у м н о ж н и к а , на я к и й з д і й с н ю є т ь с я хмноження на і-му кроці, визна­


чається з виразу:
0, я к щ о У. = У , + 1

1, я к щ о У." = 0, У + 1 = 1,
! -1, я к щ о У = 1, У. +1 = 0.
При цьому добуток формується відповідно до виразу:
2 = ХУ = Х ( - У + К(2 '-2') + У,(2' - 2 ) + ...+ГД2^""" -2"') + ...+ У„_,{2 "' -2"""' ))
0
І 2 н г] 1

Результат м н о ж е н н я т а к о ж о т р и м у є т ь с я в д о п о в н я л ь н о м у коді. На основі даного ви­


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

6.4.4.4. Прискорене множення двійкових чисел за методом Бута

Особливістю ц ь о г о м е т о д у є те, що аналізуються відразу два р о з р я д и м н о ж н и к а . Цей


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

якщо У(,. ="01"; м)

\2 = якщо Ї {ІМ] ="10";

якщо 7 . ="00","П";
( М )

2 =0;
0 і = 0,я-1; Г И ) =0; 2 =2 = ХУ,
п

де: X, У, Ъ - м н о ж е н е , м н о ж н и к і д о б у т о к відповідно, 7л - сума ч а с т к о в и х добутків на


і-му етапі, У(і, і-1) - і-й та і-1 р о з р я д и м н о ж н и к а , п - кількість р о з р я д і в операндів X та У
без в р а х у в а н н я з н а к о в о г о р о з р я д у .
Можна проілюструвати цей алгоритм за допомогою блок-схеми, показаної на
рис. 6.21.

(^початок)

1*

-0;
2:і =0;

и 1

V 2 + ,:=2,Х
1+1 1

Рис. 6.21. Блок-схема множення двійкових чисел за методом Бута

ирифм
Тут знаком •» п о з н а ч е н а о п е р а ц і я а р и ф м е т и ч н о г о з с у в у п р а в о р у ч .
222

Тепер р о з г л я н е м о п р и к л а д :
Х = 0 1 0 1 0101; Y=01101011.
Результати п р о м і ж н и х о б ч и с л е н ь наведені в табл. 6.9.
Таблиця 6.9

і Z. операція

0 0000 0000 0000 0000 0110 101110 z = >~ z x


1101 0101 1000 0000
2
1 1010 1011 0000 0000 0110 10|11 0 z =h 1110 1010 1100 0000
М
2
2 1110 1010 1100 0000 0110 [10110 = z x i+ 0001 1111 1110 0000
2
3 0001 1111 1110 0000 011101011 0 z = '~z x
11100101 0111 0000
м
2
4 11100101 0111 0000 0110 1011 [0 z =<i+i
z +x
0001 1101 0011 1000
" [
2
5 0001 1101 0011 1000 0110 1011 j 0 = z,-x 11100100 0001 1100
2

6 1110 0100 0001 1100 0110 101110 z =^ 1111 0010 0000 1110
M
2

7 1111 00100000 1110 0110 101110 z,+x 0010 0011 1000 0111
M
- 2

Таким ч и н о м

0101 0101 .01101011 =00100011 10000111.

6 . 4 . 5 . Ділення двійкових чисел


Д і л е н н я X : Y передбачає в и з н а ч е н н я ч а с т к и Q і з а л и ш к у R відповідно до рівності
X = Q * Y + R,
де X - ділене, Y - дільник.
А л г о р и т м д і л е н н я в к о м п ' ю т е р а х в и к о н у є т ь с я як послідовність операцій віднімання
д і л ь н и к а Y від ч а с т к о в о г о з а л и ш к у R i , п о ч а т к о в е з н а ч е н н я я к о г о рівне значенню ділено­
го X. З н а к о в и й р о з р я д ч а с т к и в и з н а ч а є т ь с я за з н а к а м и діленого і дільника аналогічно
операції м н о ж е н н я (табл. 6.7). П р и й м е м о , що з н а ч е н н я X і Y з а в ж д и відповідають вимозі
X<Y.
Існує два варіанти в и к о н а н н я операції д і л е н н я д в і й к о в и х чисел:
• зі з с у в о м з а л и ш к і в л і в о р у ч в і д п о в і д н о до р е к у р е н т н о ї ф о р м у л и
R = 2(R -p Y),
i l i

де p. = Sign (R. , - Y ) , R = X, i=l,2,...n. П р и ц ь о м у і-й р о з р я д частки визначається з ви­


0

р а з у q. = N O T (p.);
• зі з с у в о м д і л ь н и к а п р а в о р у ч в і д п о в і д н о до р е к у р е н т н о ї ф о р м у л и

де R = X, i=l,2,...n, q. - і-й р о з р я д ч а с т к и , п р и ч о м у q. = Sign R..


Q

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

Блок-схема а л г о р и т м у ділення з а п е р ш и м в а р і а н т о м , я к и й м а є ш и р ш е в и к о р и с т а н н я ,
наведена на рис. 6.22.

ПОЧАТОК

Рис. 6.22. Блок-схема алгоритму ділення

Ділення м о ж е б у т и в и к о н а н о д в о м а с п о с о б а м и : з в і д н о в л е н н я м і без в і д н о в л е н н я за­


лишку.
При діленні з в і д н о в л е н н я м з а л и ш к у п о с л і д о в н о віднімається д і л ь н и к від діленого і
проводиться аналіз з н а ч е н н я п о т о ч н о г о з а л и ш к у . Я к щ о після ч е р г о в о г о в і д н і м а н н я за­
лишок п о з и т и в н и й , т о відповідний р о з р я д ч а с т к и р і в н и й о д и н и ц і . П р и в і д ' є м н о м у за­
лишку р о з р я д ч а с т к и р і в н и й нулю. В ц ь о м у в и п а д к у в и к о н у є т ь с я к о р и г у ю ч е з б і л ь ш е н н я
дільника до п о т о ч н о г о з а л и ш к у ( в і д н о в л е н н я з а л и ш к у ) , він з с у в а є т ь с я на один р о з р я д
ліворуч і п р о ц е с п о в т о р ю є т ь с я . О б ч и с л е н н я п р о в о д я т ь с я за ф о р м у л о ю п е р ш о г о варіан­
ту, де q. = 1, я к щ о Я. -У>= 0 і q = 0, я к щ о К\ -У<0. На рис. 6.23 н а в е д е н о два перші я р у с и
i

графа, о п и с а н о г о а л г о р и т м у ділення.
у х

1
І Б І Віднімання

З Віднімання

І ГЧ = Ы О Т р 2 ' У У д 1 ' Р ! І

62У.
224

Р о з г л я н е м о п р и к л а д . Н е х а й X = 0.1000 = 0.5 і Y = 0.1100 = 0.75 . Тут виконана


2 10 2 І0

у м о в а X<Y. П о е т а п н і р е з у л ь т а т и в и к о н а н н я д і л е н н я в і д п о в і д н о до блок-схеми алгоритму


(рис. 6.22) наступні:
R = X = 0.1000;
0

R = 2(R - р, х Y) = 2 (0.1000 - O x 0.1100) = 1.0000, q, = 1;


] 0

R2 = 2(R, - p x Y) = 2 (1.0000- 1 x 0.1100) = 0.1000, q = 0;


2 2

R3 = 2 ( R , - p x Y ) = 2 ( 0 . 1 0 0 0 - 0 x 0 . 1 1 0 0 ) = 1.0000, q = 1;
3 3

R4 = 2(R~ - p x Y) = 2 (1.0000 - 0 x 0.1100) = 1.0000, q, = 0;


4

Таким ч и н о м м а є м о Q = q ^ ^ q , = 0.1010.
У методі д і л е н н я без в і д н о в л е н н я з а л и ш к у в і д н і м а н н я , що в и к л и к а л о появу від'єм­
н о г о з а л и ш к у при в и з н а ч е н н і з н а ч е н н я р о з р я д у ч а с т к и , е к в і в а л е н т н е д в о м відніманням
п р и визначенні сусіднього м о л о д ш о г о р о з р я д у ч а с т к и . Ділення в и к о н у є т ь с я за т и м же
співвідношенням зі зсувом залишків ліворуч відповідно до рекурентної формули
R = 2(8,, - У ) , Р і

де р = 1, я к щ о (R - У) > = 0, та р. = -1, я к щ о (R., - Y) < 0, R = X, і=1,2,...п. П р и цьому


Q

і-й р о з р я д частки в и з н а ч а є т ь с я з в и р а з у q. = Sign R..


Д і л е н н я чисел, які п р е д с т а в л е н і в о б е р н е н о м у та д о п о в н я л ь н о м у кодах, м о ж н а ви­
к о н у в а т и за п р а в и л а м и д і л е н н я в п р я м и х кодах п р и в і д п о в і д н о м у п е р е т в о р е н н і операн-
дів в цей код. Р о з г л я н е м о в и к о н а н н я операції д і л е н н я без в і д н о в л е н н я з а л и ш к і в чисел,
п р е д с т а в л е н и х д о п о в н я л ь н и м и к о д а м и . У ц ь о м у в и п а д к у д і л е н н я з в о д и т ь с я до послідов­
ності д о д а в а н ь і в і д н і м а н ь д і л ь н и к а від діленого, а потім часток і часткових з а л и ш к і в і їх
зсуву н а р о з р я д л і в о р у ч з а н а с т у п н и м и в и р а з а м и :
R. = 2R,, - У, п р и Sign R. = Sign Y;
ft, = 2r!_, + Y, п р и Sign R. =/ Sign Y,
для i=l,2,...,n+l п р и 2R = X та Sign R = Sign X. Тут Sign R. - знак і-го часткового за­
0 Q

лишку, Sign Y, Sign X - в і д п о в і д н о з н а к и Y та X.


При цьому розряди частки визначаються наступним чином:
q = 1, я к щ о Sign R. = Sign Y,
q. = 0, я к щ о Sign R =/ Sign Y.
О п е р а ц і я в и к о н у є т ь с я за n+1 к р о к і в і дає з н а ч е н н я ч а с т к и в д о п о в н я л ь н о м у коді.

6 . 4 . 6 . Арифметичні операції над двійковими числами у форматі


з рухомою комою
Як вже було показано в попередньому розділі, формат з рухомою комою передбачає на­
явність двох частин числа - п о р я д к у (Р) та мантиси (М). Числа X та Y, які мають відповідно
мантиси М та М і п о р я д к и Р та Р , м о ж н а представити у вигляді X = М 2 , Y = М 2 .
х х х
Р х
у
Ру

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


й н я т о п р е д с т а в л я т и ч и с л о з р у х о м о ю комою в так з в а н о м у н о р м а л і з о в а н о м у вигляді.
Я к щ о в и к о н у є т ь с я нерівність 1< | М | < 2 ( с т а р ш и й д в і й к о в и й р о з р я д м а н т и с и дорівнює
1), то відповідно до с т а н д а р т у ІЕЕЕ-754 в в а ж а є т ь с я , що ч и с л о представлене в нормалі­
з о в а н о м у вигляді (в багатьох п о п е р е д н і х к о м п ' ю т е р а х н о р м а л і з о в а н и м в в а ж а л о с я чис­
ло, коли 0.5 < | М | < 1). Т а к и м ч и н о м , у д в і й к о в о г о н о р м а л і з о в а н о г о числа у форматі з
р у х о м о ю к о м о ю м а н т и с а є д в і й к о в и м ч и с л о м , в я к о м у п е р ш и й р о з р я д рівний одиниці,
після якої р о з м і щ е н о д р о б о в е ч и с л о (або л и ш е д р о б о в е число, в с т а р ш о м у розряді якого
225

завжди стоїть 1). П о т р і б н о з а у в а ж и т и , що ці т в е р д ж е н н я в і д н о с я т ь с я до д в і й к о в и х чисел


у форматі з рухомою комою, о с н о в о ю п о р я д к у я к и х є число 2. Я к щ о о с н о в о ю п о р я д к у є
числа 4, 8, 16 і т. д., то в ц ь о м у в и п а д к у число є н о р м а л і з о в а н и м , коли н е н у л ь о в и м є його
перший р о з р я д в четвірковій, вісімковій або ш і с т н а д ц я т к о в і й системі ч и с л е н н я відповід­
но. Операція п р и в е д е н н я числа до н о р м а л і з о в а н о г о в и г л я д у н а з и в а є т ь с я н о р м а л і з а ц і є ю .
При виконанні д о д а в а н н я та в і д н і м а н н я двійкових чисел з р у х о м о ю к о м о ю п о р я д к и
операндів вирівнюються, а м а н т и с и додаються. П о р я д к и в и р і в н ю ю т ь с я з б і л ь ш е н н я м п о ­
рядку меншого о п е р а н д у до з н а ч е н н я п о р я д к у більшого операнду. Цей п о р я д о к є п о р я д ­
ком результату. Щоб при в и р і в н ю в а н н і п о р я д к і в в е л и ч и н а операнда не з м і н и л а с я , його
мантиса одночасно з м е н ш у є т ь с я ш л я х о м зсуву в п р а в о на відповідну з б і л ь ш е н н ю п о р я д ­
ку кількість розрядів. Після в и к о н а н н я в и р і в н ю в а н н я п о р я д к і в в и н и к а ю т ь додаткові м о ­
лодші р о з р я д и мантиси, які до, або після, д о д а в а н н я в і д к и д а ю т ь с я чи заокруглюються.
Додавання та в і д н і м а н н я д в і й к о в и х чисел з р у х о м о ю к о м о ю м о ж н а п р е д с т а в и т и в и ­
разом:

5 = X± У = М • 2 х
Рх
±М г • 2
Ру
= {м -2'±Му )• 2 х
Рг
= [м ±М • 2"')-2 \
х У
р

Наведемо п р и к л а д :
М = 1.000 1000; Р = 0 1 1 0 ; М = 1 . 1 1 0 1001; Р = 0 1 0 0 .
х х у у

Оскільки п е р ш и й о п е р а н д б і л ь ш и й , п о р я д о к ч и с л а У п р и в о д и т ь с я до п о р я д к у числа
Х : М = 0 . 0 1 1 1010; Р = 0 1 1 0 .
у у

Далі м а н т и с и додаються:
М = М + М = 1.000 1000+0.011 1010 =10.0000010; Р = 0 1 1 0 .
5 х у 5

Тепер п р о в о д и т ь с я н о р м а л і з а ц і я : М = 1 . 0 0 0 0001; Р = 0 1 1 1 .
5 5

М н о ж е н н я чисел у ф о р м а т і з р у х о м о ю к о м о ю о п и с у є т ь с я н а с т у п н и м с п і в в і д н о ­
шенням:
В = X• У = М х • 2 Рх
• Му • ї \ = М • Му • 2 р
х
Рх+Рг

П р и в и к о н а н н і м н о ж е н н я п о р я д к и о п е р а н д і в додаються, а м а н т и с и п е р е м н о ж у ю т ь ­
ся. Після п е р е м н о ж е н н я м а н т и с в и н и к а ю т ь додаткові м о л о д ш і р о з р я д и м а н т и с и , які від­
кидаються або заокруглюються.
Розглянемо приклад:
М = 1.000 1000; Р = 0 1 1 0 ; М = 1 . 1 1 0 1001; Р = 0 1 0 0 .
х х у у

Тоді М = 1.000 1000- 1.110 1001=0.111 1011 1100 1000; Р = 0 1 1 0 + 0 1 0 0 = 1 0 1 0 .


0 о

Після нормалізації: М = 1.111 0111; Р„= 1001.


с

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

- X М -2
у
Рх
М х ^р_ Р

У Му2 Рг
Му

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


Розглянемо приклад:
М = 1 . 1 1 1 1100; Р = 0 1 1 1 ; М = 1 . 1 0 0 0000; Р = 0 0 1 1 .
х х у у

Тоді М = 1 . 1 1 1 1100/ 1.100 0000=0.10101; Р = 0 1 1 1 - 0 0 1 1 = 0 1 0 0 .


с о

Після нормалізації: М = 1 . 0 1 0 1000; Р = 0 1 0 1 .


в о
226

6.5. Операції обчислення елементарних функцій


З н а ч н а ч а с т и н а задач о б р о б к и д а н и х р о з в ' я з у є т ь с я з в и к о р и с т а н н я м операцій обчис­
л е н н я т р и г о н о м е т р и ч н и х і г і п е р б о л і ч н и х ф у н к ц і й , ф у н к ц і й т и п у ехр X, ІП X, X й інших, 2

о п е р а ц і й п о в о р о т у в е к т о р а і п е р е т в о р е н н я к о о р д и н а т з однієї системи в іншу, напри­


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

6.5.ї. Розклад функції в ряд та використання ітеративних обчислень


Д л я о б ч и с л е н н я е л е м е н т а р н и х ф у н к ц і й ч а с т о в и к о р и с т о в у є т ь с я їх р о з к л а д в нескін­
ч е н н и й ряд, я к и й м і с т и т ь л и ш е е л е м е н т а р н і а р и ф м е т и ч н і т а логічні операції, або вико­
р и с т о в у ю т ь с я ітеративні с п і в в і д н о ш е н н я . Кількість членів р я д у чи ітерацій в и б и р а є т ь с я
з а л е ж н о від необхідної точності, я к а до того ж о б м е ж у є т ь с я р о з р я д н о ю сіткою.
Д л я п р и к л а д у м о ж н а н а в е с т и о б ч и с л е н н я к в а д р а т н о г о к о р е н я з а допомогою ітера­
тивної формули Ньютона
А =м (МАлА)/2,
де: А. - і-те н а б л и ж е н н я . А м о ж н а в и б р а т и д о в і л ь н и м , N - число, з якого треба до­
0

б у т и корінь.
Щ о б п е р е в і р и т и п р а в и л ь н і с т ь п о п р о б у є м о д о б у т и корінь з 36:
Ац = \ (приймаємо випадкове число)

А, = + і ) / 2 = 18.5

( %8 5
А і = 3
= Ю.2229
+
18 5
- )/ 2

А = ( З б ^ +10.2229)/2 = 6.8722
} 222д

А, = (іу в 8 ? 2 2 + 6.8722)/2 = 6.0553

Аі =
( 7 б 0553
3 + 6
- 0 5 5 3
)/ 2 = 6
- 0 0 0 2

А =(з^/
6 0 0 0 2 + 6.0002)/2 = 6.0000

6.5.2. Обчислення елементарних функцій методом "цифра за цифрою"


П р о т я г о м о с т а н н і х д е с я т и л і т ь багато р о б і т було п р и с в я ч е н о е ф е к т и в н о м у ітерацій-
н о м у а л г о р и т м у о б ч и с л е н н я е л е м е н т а р н и х ф у н к ц і й , я к и й н а й ч а с т і ш е н а з и в а ю т ь мето­
дом " ц и ф р а з а ц и ф р о ю " . О б ч и с л е н н я е л е м е н т а р н и х ф у н к ц і й м е т о д о м "цифра з а ц и ф р о ю "
з в о д и т ь с я до в и к о н а н н я двох етапів. На п е р ш о м у етапі аргумент п р е д с т а в л я є т ь с я або у
вигляді с у м и п доданків 1п(1+£ а ' ) , а б о £ гхсЩ а', або £ аггЬ а , а б о в вигляді добутку п 1

с п і в м н о ж н и к і в (1- £ а ' ) . Т ут і - н о м е р ітерації. На ц ь о м у етапі в и з н а ч а ю т ь с я значення £,


227

які м о ж у т ь бути рівні 0,1 або +1, - 1 . У п е р ш о м у в и п а д к у г о в о р я т ь п р о і т е р а ц і й н и й п р о ­


цес із з н а к о п о с т і й н и м и п р и р о с т а м и , в д р у г о м у - із з н а к о з м і н н и м и . На д р у г о м у етапі,
на підставі з н а й д е н и х на п е р ш о м у етапі з н а ч е н ь , в и з н а ч а є т ь с я в е л и ч и н а елементарної
функції ш л я х о м д о д а в а н н я або м н о ж е н н я констант. О д н о ч а с н е в и к о н а н н я д в о х описа­
них етапів методу " ц и ф р а за ц и ф р о ю " н а з и в а ю т ь м е т о д о м Волдера, а п о с л і д о в н е - м е ­
тодом Меджіта. Відміна методів Волдера і М е д ж і т а , що п о л я г а є у в е л и ч и н а х і т е р а ц і й н и х
кроків, значеннях к о н с т а н т і п о с л і д о в н о с т і в и к о н а н н я етапів, і с т о т н и м ч и н о м в п л и в а є
на точність, ш в и д к о д і ю і с т р у к т у р у о п е р а ц і й н о г о п р и с т р о ю . Д е т а л ь н и й а н а л і з п о к а з а в ,
що метод Меджіта м а є в и щ у точність, н і ж м е т о д Волдера, п р о т е ш в и д к о д і я його р е а л і ­
зації нижча.
З у р а х у в а н н я м о т р и м а н и х Вальтером результатів по уніфікації м е т о д у і ш л я х о м
об'єднання о д е р ж а н и х д л я р і з н и х ф у н к ц і й а л г о р и т м і в , є д и н и й о б ч и с л ю в а л ь н и й а л г о ­
ритм " ц и ф р а за ц и ф р о ю " в двійковій п о з и ц і й н і й системі ч и с л е н н я м о ж н а п р е д с т а в и т и в
наступному вигляді:
X. , = X - p f . Y . 2 M

1+1 і г
і І
у. , = у + і х . г - - ' 1

і+і i l l
z i + 1 =z-f.c
f / = - R S i g n Y . + (l-R)SignZ.
С = ](l+p)/2[arctg2 + (l + |p|)arth2 M 11
+ ] ( 1 - р ) /2[ 2 ;м

і = 0, 1,2, З, 3, 4 , . . . , п - 1 .
Тут ]h[ - ціла ч а с т и н а від h; | р | - м о д у л ь р; f. - д в і й к о в і о п е р а т о р и , що п р и й м а ю т ь
значення +1 або -1 з а л е ж н о від з н а к у У. а б о Z, і - н о м е р ітерації, п р и ч о м у , ітерації З,
12,... к, 3 ( к - 1 ) , . . . п о в т о р ю ю т ь с я двічі. П а р а м е т р р в и з н а ч а є т и п о б ч и с л ю в а н и х ф у н к ­
цій: р = 0 - лінійні, р = 1 - т р и г о н о м е т р и ч н і , р= -1 - гіперболічні; R - п а р а м е т р , що в и ­
значає від чого з а л е ж и т ь з н а ч е н н я {.: я к щ о R = 0, то f. = sign Z., я к щ о R = 1, то f = signY.;
C - к о н с т а н т и . В табл. 6.10 п р е д с т а в л е н і ф у н к ц і о н а л ь н і м о ж л и в о с т і р о з г л я н у т о г о а л г о ­
ритму при р і з н и х з н а ч е н н я х п а р а м е т р і в р, R і р і з н и х п о ч а т к о в и х у м о в а х X , Y , Z . Тут К.
і К - коефіцієнти деформації відповідно тригонометричного і гіперболічного векторів,
г

рівні: К = (П (1+2~ )) ; Кг = (П ( 1 - 2 ) ) , де з н а к о м П п о з н а ч е н о д о б у т о к чисел,


2(і+1) 1/2 2(і+1) 1/2

взятих в д у ж к и , при і = 0, 1, 2 .., п - 1 .


Таблиця 6.10
х„ х„ p R X Y z
K(XCosZ - K(YCosZ +
X V 7 1 0 0
1 YSinZ) XSinZ)
K(YChZ +
X Y z -1 0 K(XChZ - YShZ) 0
XSZ)
1/К 1/К z -1 0 ExpZ ExpZ 0
X Y z 0 0 X X+YZ 0
1/К 0 z 1 0 CosZ SinZ • 0
1/К 0 z -1 0 ChZ ShZ 0
1/К -1/К z -1 0 ExpZ -Exp(-Z) 0
X Y z 0 1 X 0 Y/X+Z
X Y 0 1 1 K(X +Y )" 0 2
ArctgY/X
2 2

X Y z -1 1 K(X +Y )" 0 2
ArthY/X+Z
2 2

Х-1 Х-1 0 -1 1 2K(X)" 0 VAgX


2
228

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


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

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


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

1111 1111 0011 1011

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


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

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


З а с т о с у в а н н я т а б л и ч н о г о м е т о д у в и м а г а є великої за р о з м і р о м таблиці при обробці
аргументів з в е л и к о ю р о з р я д н і с т ю , що у с к л а д н ю є з б е р і г а н н я значень функції та їх по­
ш у к в таблиці. Тому б а ж а н о с т и с н у т и і н ф о р м а ц і ю , а потім відновити її з мінімальними
в т р а т а м и точності. В и р і ш е н н я цієї задачі м о ж л и в е ш л я х о м з а с т о с у в а н н я таблично-ал­
г о р и т м і ч н о г о м е т о д у о б ч и с л е н н я е л е м е н т а р н и х ф у н к ц і й . Для таблично-алгоритмічно­
го методу х а р а к т е р н а н а я в н і с т ь а р и ф м е т и ч н и х о п е р а ц і й , необхідних для обчислення
п о п р а в к и , я к а д о д а є т ь с я до з н а й д е н о г о по таблиці з н а ч е н н я , що з а л е ж и т ь від старшої
ч а с т и н и аргументу. Ч и м в и щ і в и м о г и д о точності, т и м більше а р и ф м е т и ч н и х операцій
необхідно в и к о н а т и . П р и о б ч и с л е н н і п о п р а в к и в и к о р и с т о в у ю т ь с я як з а г а л ь н и й , так і
ч а с т к о в и й підходи. З а г а л ь н и й підхід з а с т о с о в у є т ь с я для ш и р о к о г о класу функцій, а
п р и н ц и п и в и к о р и с т а н н я ч а с т к о в о г о підходу ґ р у н т у ю т ь с я на застосуванні відомих то­
т о ж н о с т е й д л я к о ж н о ї к о н к р е т н о ї елементарної функції. П р и з а г а л ь н о м у підході вико­
ристовується співвідношення:
ДХ) = ДХв + Хп-в) = г В Д + Ф( Хп-в, Хе),
де Хе - ч и с л о , у т в о р е н е в с т а р ш и м и р о з р я д а м и аргументу X, Хп-в - число, утворене
(п-в) м о л о д ш и м и р о з р я д а м и а р г у м е н т у X, Ф ( Х п - з , Хе) - поправка.
Як в и д н о , при з а г а л ь н о м у підході п о п р а в к а з а л е ж и т ь як від молодшої, так і від стар­
шої ч а с т и н и аргументу. П р и ч а с т к о в о м у підході п о п р а в к а в о с н о в н о м у з а л е ж и т ь тільки
від м о л о д ш о ї ч а с т и н и аргументу. О б и д в а підходи передбачають в и к о р и с т а н н я таблич-
н о - а п р о к с и м а ц і й н о г о і т а б л и ч н о - і т е р а ц і й н о г о методів обчислень.
Це, зокрема, метод, що ґрунтується на представленні функції у виді суперпозиції двох
підфункцій, де п о п р а в к а задається*у вигляді усередненого значення шуканої функції на
кінцях підінтервалів, на які р о з б и в а є т ь с я область визначення функції. Однак застосуван-
229

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


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

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

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


з рухомою комою та навпаки
Для п е р е т в о р е н н я д а н и х із ф о р м а т у з ф і к с о в а н о ю у ф о р м а т з р у х о м о ю к о м о ю та на­
впаки спочатку м а ю т ь б у т и визначені п а р а м е т р и ф о р м а т і в п р е д с т а в л е н н я даних, н а п р и ­
клад, це п е р е т в о р е н н я даних із ф о р м а т у з о д и н а р н о ю точністю за с т а н д а р т о м ІЕЕЕ-754
до 3 2 - р о з р я д н о г о ф о р м а т у з ф і к с о в а н о ю к о м о ю .
П р и п е р е т в о р е н н і д а н и х із ф о р м а т у з ф і к с о в а н о ю у ф о р м а т з р у х о м о ю к о м о ю потріб­
но привести м а н т и с у до п р и й н я т о г о в ф о р м а т і з р у х о м о ю комою діапазону (за стандар­
том ІЕЕЕ-754 з р о б и т и її н о р м а л і з о в а н о ю ) , та з а б е з п е ч и т и о б ч и с л е н н я п о р я д к у з т и м , щ о б
не змінилося значення числа. П о т р і б н о відзначити, що будь-яке число в ф о р м а т і з фік­
сованою комою м о ж е бути представлено в ф о р м а т і з р у х о м о ю комою. П р и цьому, я к щ о
розрядність ц ь о г о числа м е н ш а або рівна р о з р я д н о с т і м а н т и с и , в о н о буде представлено
точно, я к щ о ж більша - н а б л и ж е н о , оскільки ч а с т и н а м о л о д ш и х р о з р я д і в буде втрачена.
П р и п е р е т в о р е н н і д а н и х із ф о р м а т у з р у х о м о ю у ф о р м а т з ф і к с о в а н о ю к о м о ю п о ­
трібно п р и в е с т и м а н т и с у до п р и й н я т о г о в ф о р м а т і з ф і к с о в а н о ю к о м о ю д і а п а з о н у при
зведенні п о р я д к у до нульового з н а ч е н н я з т и м , щ о б не з м і н и л о с я з н а ч е н н я числа.
Розглянемо кілька п р и к л а д і в .
Нехай п о т р і б н о п е р е т в о р и т и ціле ч и с л о X = 7 9 = 1001111 , я к е п р е д с т а в л е н е в двій­
]0 2

ковій ф о р м і в д о п о в н я л ь н о м у 1 6 - р о з р я д н о м у коді, як п о к а з а н о на рис. 6.24, у ф о р м а т з


рухомою к о м о ю р о з р я д н і с т ю п = 1 6 = т + к , де к = 6 - р о з р я д н і с т ь п о р я д к у , а т = 1 0 - р о з ­
рядність м а н т и с и .
15 14 ... 10
0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 1

Рис. 6.24. Ціле число Х= 79• = 1001111^ яке представлене в двійковій формі
в доповняльному 16-розрядному коді

З н а ч е н н я п о р я д к у числа в и з н а ч а є т ь с я з в и р а з у Е = Р + П , (Б = 2* = 32). Тут Р = п-1


х х
1

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


в а н н я з н а к о в о г о розряду, В - з м і щ е н н я п о р я д к у . Тобто п о ч а т к о в е з н а ч е н н я е к с п о н е н т и
рівне Е = 32+15 = 101111 . Послідовність п е р е т в о р е н н я д а н и х із ф о р м а т у з ф і к с о в а н о ю у
2

формат з р у х о м о ю комою п о к а з а н а в табл. 6.12.


Таблиця 6.12
Номер такту Мантиса Експонента
0 0,000000001001111 101111
1 0,000000010011110 101110
230

2 0,000000100111100 101101
3 0,000001001111000 101100
4 0,000010011110000 101011
5 0,000100111100000 101010
6 0,001001111000000 101001
7 0,010011110000000 101000
8 0,100111100000000 100111

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


м е ж а х п р е д с т а в л е н о на рис. 6.25.
15 14 ... 1 0
0 10 0 1 1 1 10 0 1 1 1 1 0 0

Рис. 6.25. Перетворене число

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


десяткове:

X = + 0,1001111 . 2 3 9 32
= + 1001111,0 = +79 .
(2) (10)

Нехай п о т р і б н о п е р е т в о р и т и ч и с л о Х = - 3 2 7 6 8 = -1000000000000000 в ф о р м а т з ру­


ш 2

х о м о ю комою в тій самій р о з р я д н і й сітці п = 16 = т+1с, де 1с=6 - р о з р я д н і с т ь порядку, а


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

Рис. 6.26. Перетворюване число

З н а ч е н н я п о р я д к у числа в и з н а ч а є т ь с я з в и р а з у Е = Р + 0 , (Б = 2 = 32). Тобто по­


х х
к 1

ч а т к о в е з н а ч е н н я е к с п о н е н т и р і в н е Е = 32+15 = 101111 - Як в и д н о з рис. 6.26, тут до­


2

с т а т н ь о з с у н у т и п е р е т в о р ю в а н е ч и с л о на о д и н р о з р я д п р а в о р у ч , і, т и м самим, отримати
н о р м а л і з о в а н у мантису, з а л и ш и в ш и на місці з н а к о в и й р о з р я д , та додати до початкового
з н а ч е н н я п о р я д к у о д и н и ц ю . Тобто п р и в і д ' є м н о м у значенні м а н т и с а зсувається право­
руч, а до п о р я д к у д о б а в л я є т ь с я о д и н и ц я . Таким ч и н о м , елементи числа з р у х о м о ю комою
визначені. Й о г о з н а ч е н н я в з а д а н и х м е ж а х п р е д с т а в л е н о на рис. 6.27.
15 14 ... 10
0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0

Рис. 6.27. Перетворене число

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


кове: х
X = -0,1.2 " = - 1000000000 000000,0 = - 32768 .
48 32
(2) (]0)
231

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


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

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

Десяткове число 3 6 9 1

Двійково-десяткове число 0011 0110 1001 0001

О т ж е , 3 6 9 1 = ООП 0110 1001 0001 _ .


ш 2 ]0

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


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

Двійково-десяткове число 1000 0000 0111 0010

Десяткове число 8 0 7 2

О т ж е , 1000 0000 0111 0010 = 8072, . 2 10 0

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

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


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

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


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

max/
min

max/
min

max/
min

max/
min

max/
min

max/
min

плах/
min

Рис. 6.28. Знаходження максимального і мінімального елементів масиву

Задачі зсуву елементів масиву по з а д а н і й координаті, т р а н с п о н у в а н н я масиву та ви­


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

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


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

є 1, я к щ о коди символів співпадають, і 0, я к щ о не співпадають. О п е р а ц і я ідентифікації


виконується як операція п о р і в н я н н я д в і й к о в и х кодів на з б і ж н і с т ь , о п и с а н а в п. 6.4.1.
• Перевірка за маскою. О п е р а ц і я в и к о н у є т ь с я з метою в и з н а ч е н н я відповідності коду
досліджуваного с и м в о л у X певній ознаці, що в к а з у є т ь с я к о д о м с и м в о л у маски М. Вона
передбачає перевірку збігу кодових р о з р я д і в с и м в о л у X з к о д о в и м и р о з р я д а м и с и м в о л у
маски М. Це д о з в о л я є к л а с и ф і к у в а т и код с и м в о л у на п р и н а л е ж н і с т ь до певної групи
символів ( н а п р и к л а д , с и м в о л и ц и ф р , букв, с п е ц і а л ь н и х знаків і т. п.).
• П о р і в н я н н я символів. П о р і в н я н н я с и м в о л у X із з а д а н и м с и м в о л о м С д о з в о л я є в и ­
значити в і д н о ш е н н я ваг кодів ц и х символів. Коди с и м в о л і в п р и ц ь о м у з а з в и ч а й р о з г л я ­
даються як двійкові цілі числа без знаків ( м о ж л и в і й інші інтерпретації), і п о р і в н я н н я
символів в и к о н у є т ь с я як п о р і в н я н н я ч и с л о в и х з н а ч е н ь їх кодів, в результаті я к о г о в и ­
значаються с п і в в і д н о ш е н н я Х = С , Х > С і Х < С . П о р і в н я н н я с и м в о л і в п р о в о д и т ь с я я к
операція в и з н а ч е н н я с т а р ш и н с т в а д в і й к о в и х кодів, о п и с а н а в п. 6.4.2.
• З а п и с символу за маскою. Ця о п е р а ц і я д о з в о л я є з м і н ю в а т и код с и м в о л у X згідно з
кодом символу маски М ш л я х о м в и д а л е н н я не в к а з а н и х (або, н а в п а к и , в к а з а н и х ) в коді
символу маски д в і й к о в и х р о з р я д і в коду с и м в о л у X . Тобто з а п и с с и м в о л у з а маскою за­
безпечується в и б і р к о в и м з а п и с о м о д и н и ч н и х з н а ч е н ь тільки т и х кодових р о з р я д і в с и м ­
волу X , я к и м відповідають о д и н и ч н і з н а ч е н н я р о з р я д і в коду с и м в о л у м а с к и М .
• Запис з о н и байта. Ця о п е р а ц і я є о к р е м и м в и п а д к о м операції з а п и с у с и м в о л у за
маскою, в ж и в а н і й п р и о б р о б ц і кодів с и м в о л і в б а й т о в о ї с т р у к т у р и . О п е р а ц і я д о з в о л я є
переслати код лівої (зонової) а б о п р а в о ї ( ц и ф р о в о ї ) ч а с т и н и с и м в о л у X у відповідну час­
тину іншого с и м в о л у У, т о б т о ч о т и р ь о х п р а в и х і лівих д в і й к о в и х р о з р я д і в коду X в ана­
логічні р о з р я д и коду У. Інша ч а с т и н а кодів У і X не з м і н ю є т ь с я .
Рядок представляє послідовність с и м в о л і в , що з б е р і г а ю т ь с я в п а м ' я т і к о м п ' ю т е р а та
створюють певну с е м а н т и ч н у о д и н и ц ю о б р о б л ю в а н о ї і н ф о р м а ц і ї . Рядки с и м в о л і в м о ­
жуть мати фіксовану, з м і н н у або довільну д о в ж и н у . О д и н и ц е ю о б р о б к и і н ф о р м а ц і ї р я д ­
ків символів є не д в і й к о в и й р о з р я д , а с и м в о л . Тому і всі операції н а д р я д к а м и с и м в о л і в
розглядаються я к операції над в п о р я д к о в а н и м и п о с л і д о в н о с т я м и символів.
Аналогічно д о о п е р а ц і й над с и м в о л а м и , операції над р я д к а м и с и м в о л і в м о ж н а розді­
лити на два види: аналізу, які не з м і н ю ю т ь в м і с т у о б р о б л ю в а н и х рядків, і п е р е т в о р е н н я ,
за допомогою я к и х з м і н ю є т ь с я с е м а н т и ч н и й або с и н т а к с и ч н и й вміст р я д к і в .
До операцій аналізу н а л е ж а т ь операції п о ш у к у с и м в о л у та перевірка за м а с к о ю .
Операція п о ш у к у с и м в о л у д о з в о л я є в и з н а ч и т и н а я в н і с т ь і м і с ц е з н а х о д ж е н н я п е в н о г о
(заданого) символу в рядку. О п е р а ц і я з а в е р ш у є т ь с я п р и в и я в л е н н і п е р ш о г о ш у к а н о г о
символу в рядку, або з а к і н ч е н н я м п о с и м в о л ь н о ї п е р е в і р к и ц ь о г о рядка, я к щ о ш у к а н и й
символ відсутній в ц ь о м у рядку. П о л о ж е н н я в и я в л е н о г о с и м в о л у в и з н а ч а є т ь с я п о р я д к о ­
вим н о м е р о м с и м в о л у в р я д к у або його а д р е с о ю (при п о с и м в о л ь н і й системі адресації).
Пошук виконується ш л я х о м п о с и м в о л ь н о г о п о р і в н я н н я кодів с и м в о л і в р я д к а з кодом
заданого символу на в и к о н а н н я з а д а н о г о в і д н о ш е н н я (=, >, <). З а з в и ч а й п е р е д б а ч а ю т ь с я
окремі операції п о ш у к у для к о ж н о г о з м о ж л и в и х в і д н о ш е н ь . Коди с и м в о л і в і н т е р п р е т у ­
ються як двійкові числа без знаків. З а л е ж н о від п р и й н я т о ї системи к о д у в а н н я м о ж л и в і
й інші закони в и з н а ч е н н я ваг д в і й к о в и х р о з р я д і в кодів с и м в о л і в . Результат в и к о н а н ­
ня операції в і д о б р а ж а є т ь с я с т а н о м спеціального і н д и к а т о р а і вмістом регістра а д р е с и
пам'яті, відповідним адресі о с т а н н ь о г о з в е р н е н н я до ч е р г о в о г о д о с л і д ж у в а н о г о с и м в о -
234

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


с и м в о л і в (при фіксованій д о в ж и н і слова), після о б р о б к и в к а з а н о ї в команді кількості
с и м в о л і в (при змінній п о с и м в о л ь н і й адресації), а б о п р и в и я в л е н н і о з н а к и кінця рядка
(для слів довільної д о в ж и н и ) . О ч е в и д н о , що с и т у а ц і я відсутності ш у к а н о г о символу в
р я д к у у т в о р ю є один із станів коду у м о в а б о і н д и к а т о р н о г о регістра. Перевірка за маскою
аналогічна операції п о ш у к у символу, тільки в и к о н у є т ь с я п о ш у к не одного символу, а їх
послідовності.
Д о о п е р а ц і й п е р е т в о р е н н я р я д к і в с и м в о л і в н а л е ж а т ь операції к о м п о н у в а н н я , реда­
г у в а н н я , п е р е к о д у в а н н я т а п е р е т в о р е н н я ф о р м а т і в байтів.
За д о п о м о г о ю к о м п о н у в а н н я ( з а п и с у за маскою) м о ж н а в и к о н а т и о б ' є д н а н н я вмісту
двох р я д к і в X і Y за кодом с и м в о л у м а с к и М ш л я х о м з а п и с у с и м в о л і в одного р я д к а (X) в
місце р о з т а ш у в а н н я с и м в о л і в і н ш о г о р я д к а (Y) в тих п о з и ц і я х , які вказані кодом маски.
Інші с и м в о л и п е р ш о г о рядка, другого р я д к а і код м а с к и не з м і н ю ю т ь с я . К о м п о н у в а н н я
в и к о р и с т о в у є т ь с я для ф о р м у в а н н я н о в о г о р я д к а з п о с л і д о в н о с т е й с и м в о л і в двох почат­
к о в и х р я д к і в зміною з н а ч е н н я д е я к и х с и м в о л і в р я д к а а б о з м і н о ю послідовності символів
в рядку. В операції б е р у т ь у ч а с т ь т р и о п е р а н д и : з м і н н и й р я д о к Y, р я д о к д а н и х X і символ
(може б у т и р я д о к ) м а с к и М, п о с л і д о в н і с т ь д в і й к о в и х р о з р я д і в якої відповідає символам
п е р ш и х д в о х о п е р а н д і в зліва н а п р а в о (або н а в п а к и ) . П е р ш і два о п е р а н д и зазвичай за­
д а ю т ь с я їх а д р е с а м и , а код м а с к и в к а з у є т ь с я б е з п о с е р е д н ь о в команді. За ц и х у м о в змі­
ні п і д л я г а ю т ь с и м в о л и Y, я к и м відповідає о д и н и ч н е з н а ч е н н я д в і й к о в о г о р о з р я д у коду
м а с к и М.
Редагування д о з в о л я є в и д о з м і н и т и з а д а н и й р я д о к F ( з в и ч а й н о цей текст представ­
л я є ч и с л о , що зберігається для економії п а м ' я т і в н а й б і л ь ш к о м п а к т н о м у вигляді) згідно
з п е в н и м ш а б л о н о м S. Необхідність в такій зміні часто в и н и к а є п р и виведенні наборів
різних з м і н н и х даних на друк згідно з ф о р м о ю їх в і д о б р а ж е н н я , що вимагає, наприклад,
п р о с т а в л е н н я спеціальних знаків, з а п и с і в , п о я с н е н ь і т. п. Необхідні редакторські дії за­
д а ю т ь с я в і д п о в і д н и м и к е р у ю ч и м и с и м в о л а м и , що в к л ю ч а ю т ь с я в необхідній послідов­
ності в р я д о к - ш а б л о н , в і д п о в і д н о до я к о г о і в и к о н у є т ь с я о п е р а ц і я редагування. Достат­
ню г н у ч к і с т ь р е д а г у в а н н я з а б е з п е ч у ю т ь н а с т у п н і операції над к е р у ю ч и м и символами в
рядку-шаблоні:
• з а м і н а с и м в о л і в - з а п о в н ю в а ч і в в тексті ш а б л о н у с и м в о л а м и р я д к а даних у порядку
їх п р о х о д ж е н н я ( з а з в и ч а й зліва н а п р а в о ) ;
• п р о с т а в л е н н я десяткової к р а п к и (або коми) в з а п о в н ю в а н о м у числовим рядком
контексті ш а б л о н у ;
• в и д а л е н н я н е з н а ч у щ и х нулів п р и з а п о в н е н н і к о н т е к с т у ш а б л о н у ч и с л о в и м ряд­
ком (заміна їх п р о п у с к а м и ) ;
• вказівка місця п о ч а т к у з н а ч у щ о с т і ч и с л о в и х д а н и х в контексті шаблону (для ви­
к л ю ч е н н я з а д а н о г о р а н і ш е в и д а л е н н я н е з н а ч у щ и х нулів, п о ч и н а ю ч и з цього місця);
• з а д а н н я в р я д к у ш а б л о н у б у д ь - я к и х п о с л і д о в н о с т е й п о с т і й н и х текстових, число­
в и х д а н и х або спеціальних с и м в о л і в ;
• вказівка кінця ш а б л о н у ( я к щ о ф о р м а т р я д к а ш а б л о н у не м а є постійної або змін­
ної д о в ж и н и ) .
Р е д а г у в а н н я ц и ф р о в о г о р я д к а F з д і й с н ю є т ь с я п о с и м в о л ь н о зліва н а п р а в о згідно з
вмістом послідовності к е р у ю ч и х с и м в о л і в р я д к а ш а б л о н у S. В результаті в и к о н а н н я one-
235

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


(а також с и м в о л и к е р у в а н н я в и д а л е н н я м н е з н а ч у щ и х нулів і п о ч а т к у з н а ч у щ о с т і , я к щ о
вони є) замінені к о н к р е т н и м и з н а ч е н н я м и ц и ф р р е д а г о в а н о г о ч и с л о в о г о рядка. С а м е ре­
даговане число при ц ь о м у не з м і н ю є т ь с я . Шаблон і р е д а г о в а н е ч и с л о з а д а ю т ь с я їх а д р е ­
сами, а операція з а к і н ч у є т ь с я п р и в и я в л е н н і с и м в о л у - п о к а ж ч и к а кінця ш а б л о н у п р и п о ­
слідовному його огляді під час в и к о н а н н я операції. З а з в и ч а й шаблон с т в о р ю є т ь с я д л я
редагування послідовності одного числа, п р о т е це не є о б о в ' я з к о в и м , о с к і л ь к и в и к о н а н ­
ня операції керується повністю к о н т е к с т о м ш а б л о н у і є д и н о ю д о д а т к о в о ю в и м о г о ю д л я
редагування декількох чисел за о д н и м ш а б л о н о м є послідовне р о з т а ш у в а н н я ц и х чисел в
пам'яті в порядку, в і д п о в і д н о м у послідовності їх в к л ю ч е н н я в контекст в і д р е д а г о в а н о г о
рядка згідно з з а д а н и м ф о р м а т о м шаблону. П р и р о д н о , п р и ц ь о м у необхідне б а г а т о к р а т ­
не в и к о р и с т а н н я с и м в о л і в к е р у в а н н я в и д а л е н н я м н е з н а ч у щ и х нулів і вказівки м і с ц я
початку значущості. П р и й м а є т ь с я , що дія п о п е р е д н ь о г о символу, з а д а ю ч о г о в и д а л е н н я
нулів, анулюється п е р ш и м п о д а л ь ш и м с и м в о л о м в к а з і в к и місця п о ч а т к у з н а ч у щ о с т і і
будь-яким с и м в о л о м тексту шаблону, окрім с и м в о л і в д е с я т к о в о ї к р а п к и (або к о м и ) та
символів-заповнювачів. З н а к р е д а г о в а н о г о числа р о з г л я д а є т ь с я я к чергова ц и ф р а ц ь о г о
числа.
П е р е к о д у в а н н я п р и з н а ч е н е д л я в и к о н а н н я п е р е х о д у від однієї системи к о д у в а н н я
символів д о іншої, щ о д о в і л ь н о задається. П е р е д б а ч а є т ь с я , щ о н а л е ж н и й п е р е к о д у в а н н ю
рядок зберігається в п о с л і д о в н и х комірках пам'яті, п о ч и н а ю ч и з деякої адреси, і з а д а н а
таблиця п е р е к о д у в а н н я , що зберігається в п а м ' я т і , т а к о ж п о ч и н а є т ь с я з деякої адреси.
Таблиця п е р е к о д у в а н н я містить перелік н а л е ж н и х п е р е к о д у в а н н ю с и м в о л і в в новій сис­
темі кодування. П е р е к о д у в а н н я в и к о н у є т ь с я з а м і н о ю ч е р г о в о г о с и м в о л у о д н о г о р я д к а
відповідним н о в и м кодом ц ь о г о с и м в о л у з таблиці п е р е к о д у в а н н я . П е р е к о д у в а н н я м о ж е
супроводжуватися в и з н а ч е н н я м і відповідною і н д и к а ц і є ю д е я к и х у м о в ( н а п р и к л а д , на­
явність тільки ц и ф р о в и х і а л ф а в і т н и х , або ж тільки в и з н а ч е н и х с и м в о л і в в рядку, що
перекодовується) і з а в е р ш е н н я м операції при в и к о н а н н і або н е в и к о н а н н і п е в н и х у м о в .
Таким ч и н о м , м о ж у т ь ф о р м у в а т и с я декілька варіантів о п е р а ц і й п е р е к о д у в а н н я .
Перетворення форматів байтів застосовується для економного зберігання ц и ф р о ­
вих даних в п а м ' я т і та з р у ч н о с т і п р е д с т а в л е н н я їх в м і с т у на з о в н і ш н і х д о к у м е н т а х , що
підлягають с п р и й н я т т ю л ю д и н о ю . Я к в і д о м о , д л я з б е р і г а н н я ц и ф р о в и х д а н и х достат­
ньо 4 двійкових р о з р я д и на десяткову ц и ф р у , т о б т о в байті, п р и з н а ч е н о м у для з б е р і г а н ­
ня коду одного а л ф а в і т н о - ц и ф р о в о г о символу, м о ж н а р о з м і с т и т и коди д в о х д е с я т к о в и х
цифр, або коди ц и ф р и і знаку, що удвічі с к о р о ч у є о б ' є м п а м ' я т і , необхідної д л я з б е р і г а н ­
ня цих даних. П р о т е при в и в о д і на друк або інші з о в н і ш н і носії і н ф о р м а ц і ї н е о б х і д н о
привести коди всіх с и м в о л і в до є д и н о г о ф о р м а т у , о с к і л ь к и і н а к ш е н е м о ж л и в а п р а в и л ь ­
на їх і н т е р п р е т а ц і я з обліком тільки кодів байтів.
Таким ч и н о м , при байтовій організації п а м ' я т і для з б е р і г а н н я о д и н и ц ь ч и с л о в о ї і
символьної і н ф о р м а ц і ї з а с т о с о в у ю т ь два ф о р м а т и , які у м о в н о н а з и в а ю т ь с я у п а к о в а н и й
- по дві десяткові ц и ф р и в байті і з о н о в и й - одна д е с я т к о в а ц и ф р а (або знак) в байті.
В о с т а н н ь о м у в и п а д к у д в і й к о в и й код ц и ф р и (або знаку) п р и й н я т о р о з м і щ у в а т и в п р а ­
вих чотирьох р о з р я д а х коду б а й т а і н а з и в а т и цю й о г о ч а с т и н у ц и ф р о в о ю , а ліва ч а с т и н а
байта при ц ь о м у містить спеціальний код з о н и , в и к о р и с т о в у в а н и й як о з н а к а ц и ф р о в и х
даних, і н а з и в а є т ь с я з о н о в о ю ч а с т и н о ю .
236

Для п е р е т в о р е н н я ф о р м а т і в п р е д с т а в л е н н я ц и ф р о в и х д а н и х застосовують 4 операції:


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

6.9. Короткий зміст розділу


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

6. / 0. Література для подальшого читання


Алгоритми в и к о н а н н я логічних (логічне м н о ж е н н я , логічне додавання, інверсія і т. д.),
зсуву ( п р а в о р у ч , л і в о р у ч ) , в і д н о ш е н н я (менше, більше, рівне, менше-рівне, більше-рів­
не) та а р и ф м е т и ч н и х ( д о д а в а н н я , в і д н і м а н н я , м н о ж е н н я та ділення) наведені в багатьох
п р а ц я х , п р и с в я ч е н и х п и т а н н я м п о б у д о в и комп'ютерів. В п е р ш у чергу серед них потрібно
відзначити р о б о т и [1-5]. В р о б о т а х [6-11] описані а л г о р и т м и о б ч и с л е н н я елементарних
ф у н к ц і й за м е т о д о м " ц и ф р а за цифрою". П и т а н н я м п о б у д о в и т а б л и ч н и х та таблично-ал­
г о р и т м і ч н и х методів о б ч и с л е н н я е л е м е н т а р н и х ф у н к ц і й п р и с в я ч е н і р о б о т и [12-25]. Ал­
г о р и т м и с о р т у в а н н я д е т а л ь н о о п и с а н і в р о б о т а х [26, 27]. Клас а л г о р и т м і в паралельного
с о р т у в а н н я о п и с а н и й в р о б о т і [28]. В и к о н а н н я о п е р а ц і й о б р о б к и символів та стрічок
с и м в о л і в н а в е д е н о в [3].

6.11. Література до розділу 6


1. Прикладная теория цифровых автоматов / К. Г. Самофалов, А. М. Романкевич, В. Н. Валуй-
ский, Ю. С. Каневский, М. М. Пиневич. - К.: Вища шк., 1987. - 375 с.
2. Корнейчук В. И., Тарасенко В. П. Основы компютерной арифметики. - К. Корнейчук, 2002.
- 176 с.
3. Рабинович 3. Л., Раманаускас В. А. Типовые операции в вычислительных машинах. - К.:
Техника, 1980. - 264 с.
4. Карцев М. А. Арифметика цифровых машин. - М.: Наука, 1969.
5. Савельев А. Я. Арифметические и логические основы цифровых автоматов. - М.: Наука,
1980. - 255 с.
6. Бойков В. Д., Смолов В. Б. Аппаратурная реализация элементных функций в ЦВМ. - Л. ЛГУ
- 9 6 с.
7. Благовещенский Ю. В., Теслер Г. С. Вычисление элементарных функций на ЭВМ. - К.: Тех­
ника, 1977. - 208 с.
237

8. Оранский А. М. Аппаратные методы в цифровой вычислительной технике. - Минск, Из во


БГУ, 1977. - 208 с
9. Voider J. Е. The CORDIC trigonometric computing technique. - "IRE Trans.", 1959, 3, pp. 330-334.
10. Walther I. S. -In: Proc. Spring Joint Comput. Conf Monthvale, 1971, V.38, N.J.: AFIPS Press, 1971.
11. Meggite I. E. Pseudodivision and Pseudomultiplication process. - IBMJ. Res. Develop., v. 6.,
1962,№ 2
12. Смолов В. В., Байков В. Д. Анализ табличных и таблично алгоритмических методов во­
спроизведения элементарных функций. - Электронное моделирование, 1980, № 1, с. 22-27.
13. Колубай С. К., Мурашко А. Г Принципы построения процессоров типа "память система
поиска" // УСИМ, 1977, № 4, с. 58- 62.
14. Хемел А. Выполнение математических операций с помощью ПЗУ // Экспрессинформация,
серия "Вычислительная техника", 1970, № 32, с. 27-29.
15. Смолов В. Б., Байков В. Д. Анализ табличных и таблично алгоритмических методов во­
спроизведения элементарных функций // Электронное моделирование, 1980, № 1, с. 22-27.
16. Балашов Е. П., Смолов В. Б. и др. К вопросу применения сокращенных таблиц функций для
построения высокопроизводительных однородных процессоров // УСИМ, 1975, № 3, с. 99-102
17. Ильин В. А., Попов Ю. А., Дружинина И. И. Об использовании сокращенных таблиц при
вычислении элементарных функций // УСИМ, 1979, № 1, с. 58-60.
18. Палагин А. В., Кургаев А. Ф., Кондрачук И. М. К выбору метода вычисления элементарных
функций в мини ЭВМ // УСИМ, 1973, № 5, с. 65-69.
19. Потапов В. И., Нестерук В Ф., Флоренсов А Н. Быстродействующие арифметико логичес­
кие устройства ЦВМ. - Новосибирск, 1978.
20. Потапов В. И., Флоренсов А Н. Таблично аддитивная организация вычисления в ЭВМ
функций, принадлежащих к классу дважды непрерывно дифференцируемых // Автоматика и вы­
числительная техника, 1977, № 6, с. 78-84.
21. Потапов В. И., Флоренсов А Н. Таблично алгоритмическая организация вычислений эле­
ментарных функций в ЦВМ. - Изв. вузов, сер. Приборостроение, 1978, т. 21, № 9, с. 63-66.
22. Потапов В. И., Флоренсов А Н. Таблично алгоритмический метод реализации в ЦВМ
функции логарифма // УСИМ, 1978, № 4, с. 90-94.
23. Мухопад Ю. Ф., Федченко А И., Лукашенко В М. Таблично функциональные преобразова­
тели с ограниченным числом хранимых констант // УСиМ, 1975, № 4, с. 99-102.
24. Голубков Ю. А., Лебедев А В. Некоторые пути повышения скорости вычисления элемен­
тарных функций на ЦВМ. - М., 1962. - 64 с
25. Пелед Ф., Лиу Б. (США). Цифровая обработка сигналов: Теория, проектирование, реали­
зация: Пер с анг. - Киев: Вища школа. Головное изд во, 1979. - 264 с
26. Кнут. Сортировка и поиск.
27. Кун С. Матричные процессоры на СБИС: Пер. с англ. - М.: Мир, 1991. - 672 с
28. Мельник А. А., Илькив В. С. Реализация алгоритмов сортировки. В кн. "Систолические
вычислительные структуры". Препринт АН УССР. Ин т ИППММ, № 3, 1987

6.12. Питання до розділу 6


1. Назвіть основні операції обробки даних
2. Які основні логічні операції виконуються в комп'ютері? Наведіть таблицю істинності цих
операцій
3. Дайте пояснення операцій логічного зсуву
4. Дайте пояснення операцій арифметичного зсуву
5. Дайте пояснення операцій циклічного зсуву
6. Наведіть правило та приклад додавання двійкових чисел без знаків
238

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


8. Наведіть правило та приклад додавання двійкових чисел, представлених в прямому коді
9. Наведіть правило та приклад додавання двійкових чисел, представлених в оберненому коді
10. Наведіть правило та приклад додавання двійкових чисел, представлених в доповняльно­
му коді
11. Як фіксується переповнення при додаванні двійкових чисел?
12. Приведіть граф алгоритму множення цілих двійкових чисел без знаків
13. Наведіть алгоритми багатомісної операції додавання часткових добутків з використанням
операторів паралельного двомісного додавання
14. Наведіть граф алгоритму послідовного попарного додавання часткових добутків, отрима­
них починаючи з аналізу молодших розрядів множника
15. Наведіть граф алгоритму послідовного попарного додавання часткових добутків, отрима­
них починаючи з аналізу старших розрядів множника
16. Наведіть граф алгоритму паралельного попарного додавання часткових добутків з вико­
ристанням структури бінарного дерева
17. Наведіть алгоритми багатомісної операції додавання часткових добутків з використанням
операторів двомісного однорозрядного додавання
18. Приведіть граф алгоритму множення двійкових чисел із знаками
19. Поясніть суть та переваги алгоритму множення двійкових чисел за алгоритмом Бута
20. Приведіть та поясніть алгоритми ділення з відновленням та без відновлення залишку. Яка
між ними різниця?
21. Як привести число з рухомою комою до нормалізованого вигляду?
22. Приведіть та поясніть алгоритми додавання та віднімання чисел з рухомою комою
23. Приведіть та поясніть алгоритми множення чисел з рухомою комою
24. Приведіть та поясніть алгоритми ділення чисел з рухомою комою
25. Поясніть як виконується операція порівняння двійкових кодів на збіжність та визначення
їх старшинства
26. Які є методи обчислення елементарних функцій?
27. Дайте пояснення методу обчислення елементарних функцій шляхом розкладу в ряд
28. Дайте пояснення методу обчислення елементарних функцій шляхом використання ітера-
ційних обчислень
29. Поясніть алгоритм обчислення елементарних функцій методом „цифра за цифрою"
30. Поясніть суть табличного методу обчислення елементарних функцій
31. Поясніть суть таблично алгоритмічного методу обчислення елементарних функцій
32. Опишіть алгоритм перетворення з формату з фіксованою комою до формату з рухомою
комою
33. Опишіть алгоритм перетворення з формату з рухомою комою до формату з фіксованою
комою
34. Як перетворити двійково десятковий код в двійковий і навпаки?
35. Що таке масив?
36. Назвіть характеристики масиву
37. Назвіть алгоритми сортування чисел
38. В чому полягає задача сортування чисел?
39. Опишіть суть алгоритму сортування методом бульки
40. Опишіть суть алгоритму сортування методом вставки
41. Опишіть суть алгоритму сортування методом вибору елементів масиву
42. Приведіть алгоритм знаходження максимального і мінімального елементів масиву
43. Приведіть перелік основних операцій над символами
44. Приведіть перелік основних операцій над рядками символів
Розділ 7

сАрифметико/ лтічтлй/ пристрій

7.1. Функції арифметико-логічного пристрою


А р и ф м е т и к о - л о г і ч н и й п р и с т р і й ( А Л П ) п р и з н а ч е н и й для в и к о н а н н я а р и ф м е т и ч н и х ,
логічних та і н ш и х о п е р а ц і й о б р о б к и д а н и х над о п е р а н д а м и , які п р е д с т а в л я ю т ь с о б о ю
двійкові числа з фіксованою та р у х о м о ю комою, двійково-десяткові числа, к о м а н д и , а д р е ­
си, логічні коди, а л ф а в і т н о - ц и ф р о в і коди. А Л П є о д н и м з о с н о в н и х вузлів п р о ц е с о р а . Ін­
терфейс А Л П , т о б т о його з в ' я з к и з і н ш и м и в у з л а м и п р о ц е с о р а , п о к а з а н о на рис. 7.1.

Код операції

Вхідні дані Вихідні дані


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

, Сигнали станів
г

Рис. 7.1. Інтерфейс АЛП

Вхідні дані п о с т у п а ю т ь в А Л П з р е г і с т р о в о г о ф а й л у п р о ц е с о р а а б о з о с н о в н о ї п а м ' я ­


ті (залежно від т и п у а р х і т е к т у р и к о м п ' ю т е р а ) , до я к и х з а п и с у ю т ь с я і вихідні дані. Код
операції п о с т у п а є з п о л я коду операції в и к о н у в а н о ї к о м а н д и , яка зберігається в регістрі
команди РгК, а с и г н а л и станів А Л П п о в і д о м л я ю т ь п р и с т р і й к е р у в а н н я п р о стан ходу
виконання операцій та ф і к с у ю т ь с я в регістрі слова с т а н у п р о г р а м и регістрової п а м ' я т і
процесора.
А р и ф м е т и к о - л о г і ч н и й п р и с т р і й п р о ц е с о р а - це к о м б і н а ц і й н а схема (КС) без вну­
трішньої пам'яті, я к а здатна в и к о н у в а т и н а б і р е л е м е н т а р н и х о п е р а ц і й та д е я к у м н о ­
жину складних о п е р а ц і й , які ініціюються к о м а н д а м и о б р о б к и д а н и х з с и с т е м и к о м а н д
комп'ютера. В п о т у ж н и х к о м п ' ю т е р а х , а о с т а н н і м ч а с о м і в багатьох о д н о к р и с т а л ь н и х
комп'ютерах, в и к о р и с т о в у ю т ь с я багатоблокові А Л П з в н у т р і ш н ь о ю р е г і с т р о в о ю п а м ' я т ­
тю на основі т а б л и ч н и х , о д н о т а к т о в и х , б а г а т о т а к т о в и х та к о н в е є р н и х о п е р а ц і й н и х п р и ­
строїв. Тип в и к о н у в а н о ї операції в к а з у є т ь с я к о д о м на вході к е р у в а н н я А Л П . Т и п о в о в
АЛП в и к о н у ю т ь с я такі операції: з с у в - з м і щ е н н я кодів, які з б е р і г а ю т ь с я в регістрах,
вліво або в п р а в о на з а д а н е ч и с л о р о з р я д і в ; д о д а в а н н я до слова 1 а б о -1 - о п е р а ц і я ра­
хунку; д е ш и ф р у в а н н я - п е р е т в о р е н н я д в і й к о в о г о коду в о д н о р я д н и й код; ш и ф р у в а н н я
240

- п е р е т в о р е н н я о д н о р я д н о г о коду в д в і й к о в и й ; п о р і в н я н н я - в и з н а ч е н н я відношення
с т а р ш и н с т в а д в о х слів або їх рівності; п о р о з р я д н е д о п о в н е н н я - ф о р м у в а н н я оберне­
ного коду; п о р о з р я д н і логічні м н о ж е н н я і д о д а в а н н я двох слів; п о р о з р я д н е додавання
двох слів за модулем; с у м а двох чисел. В багатьох к о м п ' ю т е р а х цей перелік розширений
більш с к л а д н и м и о п е р а ц і я м и , н а п р и к л а д а р и ф м е т и ч н и м и , в і д н о ш е н н я , о б р о б к и рядків
символів, о б ч и с л е н н я е л е м е н т а р н и х ф у н к ц і й і т. д.
З а л е ж н о від с п о с о б у о б р о б к и о п е р а н д і в А Л П діляться на послідовні, послідовно-
п а р а л е л ь н і та паралельні. В п е р ш о м у в и п а д к у о б р о б к а операндів в А Л П здійснюється
п о с л і д о в н о в часі н а д к о ж н и м р о з р я д о м , тоді як в о с т а н н ь о м у операції здійснюються
п а р а л е л ь н о в часі н а д всіма р о з р я д а м и операндів.
За с п о с о б о м п р е д с т а в л е н н я чисел р о з д і л я ю т ь А Л П з фіксованою та з рухомою ко­
мою, п р и ч о м у перші м о ж у т ь бути о р і є н т о в а н і на о б р о б к у цілих або д р о б о в и х чисел.
З а л е ж н о від с п о с о б у в и к о н а н н я о п е р а ц і й А Л П діляться на однотактові, коли задана
о п е р а ц і я в и к о н у є т ь с я за один такт, та багатотактові, коли для в и к о н а н н я операції по­
т р і б н о в и к о н а т и д е я к у кількість тактів.
А Л П м о ж у т ь б у т и к о н в е є р н и м и або с к а л я р н и м и . В и к о р и с т а н н я к о н в е є р н о г о прин­
ц и п у о б р о б к и д а н и х д о з в о л я є с у т т є в о п і д в и щ и т и п р о д у к т и в н і с т ь А Л П та комп'ютера в
цілому.
За х а р а к т е р о м в и к о р и с т а н н я елементів А Л П діляться на о д н о - та багатоблокові. В
о д н о б л о к о в и х ( б а г а т о ф у н к ц і о н а л ь н и х ) А Л П всі операції над всіма т и п а м и операндів ви­
к о н у ю т ь с я т и м и ж в у з л а м и , я к і к о м у т у ю т ь с я в і д п о в і д н и м ч и н о м з а л е ж н о від потрібного
р е ж и м у р о б о т и . В б а г а т о б л о к о в и х А Л П о к р е м і групи о п е р а ц і й над к о ж н и м типом опе­
рандів в и к о н у ю т ь с я о к р е м и м и б л о к а м и . Це д о з в о л я є п і д в и щ и т и п р о д у к т и в н і с т ь А Л П за
рахунок п а р а л е л ь н о г о в и к о н а н н я о п е р а ц і й .

7.2. Способи обробки даних в арифметико-логічному пристрої


З а л е ж н о від с п о с о б у о б р о б к и о п е р а н д і в А Л П діляться на послідовні, послідовно-
п а р а л е л ь н і та паралельні.
В п о с л і д о в н и х А Л П о б р о б к а о п е р а н д і в з д і й с н ю є т ь с я послідовно в часі над кожним
р о з р я д о м , як це п о к а з а н о на рис. 7.2.

ЗРгІ

ЗРг2

Рис. 7.2. Послідовний спосіб обробки даних в АЛП

Тут на вході А Л П є зсувні регістри З Р г І та ЗРг2, з я к и х дані п о р о з р я д н о поступають


на обробку. Результат з А Л П т а к о ж п о р о з р я д н о п о с т у п а є в вихідний з с у в н и й регістр
ЗРгЗ. В к о ж н о м у такті о п е р а н д и в з с у в н и х регістрах з м і щ у ю т ь с я на один р о з р я д вправо.
Крім того, м о ж л и в и й з в о р о т н и й з в ' я з о к з вихідного регістра до входу А Л П . Оскільки об­
р о б к а здійснюється п о р о з р я д н о , то для о т р и м а н н я результату потрібно як мінімум п так­
тів, де п - р о з р я д н і с т ь операндів. Для складних операцій кількість тактів може становити
241

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


2

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


габаритних комп'ютерів з а в д я к и м а л и м в и т р а т а м о б л а д н а н н я н а побудову т а к и х А Л П .
В п а р а л е л ь н и х А Л П операції в и к о н у ю т ь с я о д н о ч а с н о над всіма р о з р я д а м и о п е р а н -
дів, як це п о к а з а н о на рис. 7.3.

РП Рг2

г і1
АЛП

РгЗ

І
Рис. 7.3. Паралельний спосіб обробки даних в АЛП

Тут на вході А Л П є регістри Р г і та Рг2, з я к и х дані п а р а л е л ь н о п о с т у п а ю т ь на о б ­


робку. Результат т а к о ж п а р а л е л ь н о п о с т у п а є в в и х і д н и й регістр РгЗ. О с к і л ь к и о б р о б к а
здійснюється п а р а л е л ь н о , вона в и к о н у є т ь с я п р о т я г о м л и ш е одного т а к т у н е з а л е ж н о від
р о з р я д н о с т і операндів. Тобто А Л П з п а р а л е л ь н и м с п о с о б о м о б р о б к и д а н и х х а р а к т е р и ­
зується високою ш в и д к о д і є ю , що і є п р и ч и н о ю його ш и р о к о г о в и к о р и с т а н н я . Р а з о м з
тим, т а к и й А Л П х а р а к т е р и з у є т ь с я в е л и к и м и в и т р а т а м и о б л а д н а н н я н а його побудову.
П о с л і д о в н о - п а р а л е л ь н и й спосіб о б р о б к и д а н и х є п р о м і ж н и м с т о с о в н о швидкодії та
затрат о б л а д н а н н я в п о р і в н я н н і з в и щ е р о з г л я н у т и м и п о с л і д о в н и м та п а р а л е л ь н и м спо­
собами. Тут одне з вхідних д а н и х м о ж е п о с т у п а т и на о б р о б к у в А Л П п а р а л е л ь н о , а інше
послідовно з видачею п р о м і ж н о г о р е з у л ь т а т у в п а р а л е л ь н о м у коді, як це п о к а з а н о на
рис. 7.4 а, або вхідні дані м о ж у т ь п о с т у п а т и в А Л П г р у п а м и по к і т р о з р я д і в , як це п о ­
казано на рис. 7.4 Ь, та п о д а в а т и с ь в в и х і д н и й регістр п а р а л е л ь н о , а б о т а к о ж г р у п а м и .

ЗРгІ
Ргі
1
АЛП Рг2
ЗР1
ЗРг2

а Ь
Рис. 7.4. Послідовно-паралельний спосіб обробки даних в АЛП

7.3. Елементарні операції арифметико-логічного пристрою


Складні операції в А Л П р е а л і з у ю т ь с я як послідовність елементарних, т о м у А Л П бу­
дується на основі к о м б і н а ц і й н и х схем КС, які в и к о н у ю т ь елементарні операції. До т и п о ­
вих елементарних о п е р а ц і й належать:
• зсув - з м і щ е н н я кодів, які з б е р і г а ю т ь с я в регістрі, вліво а б о в п р а в о на з а д а н е
число розрядів;
1< Ч » . . 7*71
242

• д о д а в а н н я до слова 1 а б о -1 - о п е р а ц і я р а х у н к у ;
• дешифрування п е р е т в о р е н н я слів в сигнали ( о д н о р я д н и й код);
• шифрування п е р е т в о р е н н я о д н о р я д н о г о коду в д в і й к о в и й ;
• порівняння в и з н а ч е н н я в і д н о ш е н н я с т а р ш и н с т в а двох слів або їх рівності
• порозрядне доповнення ф о р м у в а н н я о б е р н е н о г о коду;
• п о р о з р я д н е логічне м н о ж е н н я і д о д а в а н н я д в о х слів
• п о р о з р я д н е д о д а в а н н я двох слів по модулю;
• сума д в о х чисел
Е л е м е н т а р н і операції є о с н о в о ю д л я в и к о н а н н я більш складних операцій процесора.
А л г о р и т м и в и к о н а н н я ц и х о п е р а ц і й п р е д с т а в л я ю т ь с я я к послідовність елементарних,
які н а з и в а ю т ь с я м і к р о к о м а н д а м и , а набір м і к р о к о м а н д м і к р о п р о г р а м а м и Більше того,
в більшості сучасних к о м п ' ю т е р і в елементарні операції в х о д я т ь до складу їх системи ко­
манд, не д и в л я ч и с ь на н а я в н і с т ь в складі системи к о м а н д складних операцій, які вима­
гають в и к о н а н н я великої кількості елементарних, н а п р и к л а д операцій компресії даних,
ш и ф р у в а н н я д а н и х і т. д. Це п о я с н ю є т ь с я д в о м а п р и ч и н а м и : наявність в складі системи
к о м а н д к о м п ' ю т е р а к о м а н д в и к о н а н н я е л е м е н т а р н и х о п е р а ц і й забезпечує його універ­
сальність, і, крім того, ці о п е р а ц і ї в и к о н у ю т ь с я г р а н и ч н о ш в и д к о , що д о з в о л я є досягти
високих тактових частот роботи процесора
Н а основі к о м б і н а ц і й н и х схем д л я в и к о н а н н я в и щ е н а з в а н и х елементарних операцій
с и н т е з у ю т ь с я вузли А Л П д л я в и к о н а н н я с к л а д н и х о п е р а ц і й , щ о буде п о к а з а н о далі
А р и ф м е т и к о л о г і ч н и й п р и с т р і й д л я в и к о н а н н я е л е м е н т а р н и х операцій н а я в н и й в
к о ж н о м у у н і в е р с а л ь н о м у к о м п ' ю т е р і Р о з г л я н е м о побудову с т а н д а р т н о г о 4-розрядного
А Л П , ф у н к ц і о н а л ь н е п о з н а ч е н н я та входи виходи я к о г о п о к а з а н о на рис. 7.5. Інтерфейс
А Л П в к л ю ч а є дві вхідних (А і В) та одну вихідну 4 - р о з р я д н і ш и н и даних. Дані з вхідних
ш и н о б р о б л я ю т ь с я в А Л П в і д п о в і д н о до з н а ч е н н я д в і й к о в о г о коду на входах керування
М та БО-БЗ. Результат о б р о б к и п о с т у п а є на вихідну ш и н у Е

О Сі+4
АШ
Ао
Аі
А2 н
Аз
Во Ро
Ві Р\
В2
Вз ЇЗ
Эо
Бі А=В
Б2
Бз
М

Рис. 7.5. Входи-виходи стандартного 4-розрядного АЛП

Для н а р о щ у в а н н я р о з р я д н о с т і такі А Л П о б ' є д н у ю т ь с я ш л я х о м відповідного з'єд­


н а н н я входів п е р е н о с у С . т а С . . О с н о в о ю А Л П с л у ж и т ь с у м а т о р , щ о в и к о н у є операцію
д о д а в а н н я д в о х чисел, схема я к о г о д о п о в н ю є т ь с я в і д п о в і д н и м и логічними елементами
для р о з ш и р е н н я ф у н к ц і й та з а б е з п е ч е н н я п е р е к л ю ч е н н я з однієї операції на іншу. Вхід
243

M (mode) задає тип в и к о н у в а н о ї операції: логічна ( М = 1 ) чи а р и ф м е т и к о - л о г і ч н а ( М = 0 ) .


Виходи G і Н задають функції генерації і п р о з о р о с т і , які в и к о р и с т о в у ю т ь с я для органі­
зації паралельних переносів при н а р о щ у в а н н і р о з р я д н о с т і А Л П з в и к о р и с т а н н я м схем
прискореного переносу. Вихід А=В є в и х о д о м п о р і в н я н н я кодів А та В на з б і ж н і с т ь .
Перелік операцій, в и к о н у в а н и х о п и с а н и м А Л П , п р и в е д е н о в табл. 7.1.
Таблиця 7.1
S Логічна операція (М=1) Арифметико логічна операція (М=0)
0000 NOT(A) А+ С
0001 N O T (A OR В) A OR В + С
0010 N O T (A) A N D В A OR NOT (В) + С.
0011 0 1 +С.
0100 N O T (A A N D В) А + A A N D NOT (В) + С,
0101 N O T (В) A OR В + A A N D NOT (В) + С.
0110 AXORB А + NOT (В) + С,
0111 A A N D N O T (В) A A N D N O T (В) +1 + С ;

1000 N O T (A) OR В А + A AND В + С


1001 N O T (A XOR В) А + В + С.
1010 В A OR N O T (В)+ A A N D В + С,
1011 A AND В A A N D В +1 + С.
1100 1 А + А + С.

1101 A OR N O T (В) A OR В + А + С
1110 A OR В A OR N O T (В)+А + С
1111 А А + 1 + С.

В таблиці п р и й н я т і наступні позначення: OR - операція диз'юнкції, A N D - операція


кон'юнкції, X O R - операція нерівнозначності,"+" - операція д о д а в а н н я , " - " - операція від­
німання. Позначенням 1 та 0 в таблиці відповідають двійкові коди відповідно 1111 та 0000.
Вхідний перенос поступає в м о л о д ш и й р о з р я д слова, тобто до слова додається код 000С

7.4. Складні операції арифметико-логічного пристрою


Крім в и щ е п е р е р а х о в а н и х е л е м е н т а р н и х о п е р а ц і й , в А Л П в и к о н у є т ь с я велика кіль­
кість складних операцій, т о б т о таких, які р е а л і з у ю т ь с я на основі елементарних. М о ж н а
виділити н а с т у п н и й перелік с к л а д н и х о п е р а ц і й А Л П , с ф о р м о в а н и й на основі аналізу
системи к о м а н д сучасних к о м п ' ю т е р і в :
• логічні операції (логічне м н о ж е н н я , логічне д о д а в а н н я , інверсія і т. д.) над двій­
ковими числами;
• операції зсуву ( в п р а в о , вліво) на з а д а н у кількість р о з р я д і в , п р и ч о м у в о д н о м у
такті зсув може бути здійснено як на один р о з р я д , так і на декілька р о з р я д і в ;
• а р и ф м е т и ч н і операції ( д о д а в а н н я , в і д н і м а н н я , м н о ж е н н я та ділення) н а д двій­
ковими числами;
• операції в і д н о ш е н н я : м е н ш е , більше, рівне, м е н ш е - р і в н е , більше-рівне;
• операції о б ч и с л е н н я е л е м е н т а р н и х ф у н к ц і й т и п у exp X, In X, Sin X, Cos X, Sh X,
C h X , піднесення д о степеня A ; arctg y/x;
m

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

П о т р і б н о в і д з н а ч и т и , що р о з г л я н у т і в розділі 4 операції п е р е т в о р е н н я даних (пере­


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

7.5. Використання графа алгоритму при побудові


арифметико-логічного пристрою
Щ о б в и я в и т и е ф е к т и в н і підходи д о реалізації а л г о р и т м у в и к о н а н н я складної опера­
ції в А Л П , необхідно п р е д с т а в и т и його в ф о р м і , я к а р о з к р и в а є його базові обчислюваль­
ні та структурні характеристики. Обчислювальні характеристики описуються повним
н а б о р о м ф у н к ц і о н а л ь н и х о п е р а т о р і в а л г о р и т м у і в і д п о в і д н и м и їм о б ч и с л ю в а л ь н и м и
затримками. Структурні характеристики описуються зв'язками між функціональними
о п е р а т о р а м и а л г о р и т м у і їх в з а є м о з а л е ж н і с т ю .
О д н і є ю із м о ж л и в и х ф о р м п р е д с т а в л е н н я а л г о р и т м у є графічна. На рис. 7.6а пред­
с т а в л е н и й г р а ф д е я к о г о алгоритму.

Рис. 7.6. Граф алгоритму

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


- з в ' я з о к м і ж ф у н к ц і о н а л ь н и м и о п е р а т о р а м и . Вершина, я к а відповідає ф у н к ц і о н а л ь н о ­
му о п е р а т о р у Фі, з ' є д н у є т ь с я з в е р ш и н о ю , я к а відповідає ф у н к ц і о н а л ь н о м у оператору
245

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


одним із аргументів для о п е р а т о р а Ф^'. О п и с а н а графічна ф о р м а п р е д с т а в л е н н я а л г о р и т ­
му д о з в о л я є о ц і н и т и його о б ч и с л ю в а л ь н і х а р а к т е р и с т и к и , т о м у ш и р о к о в и к о р и с т о в у ­
ється при синтезі А Л П .
П р е д с т а в л е н н я г р а ф а а л г о р и т м у в т а к о м у вигляді не д о з в о л я є в п о в н і й мірі о ц і н и т и
його с т р у к т у р н і х а р а к т е р и с т и к и , а з н а ч и т ь і м о ж л и в о с т і його р о з п а р а л е л е н н я та с п о с о ­
би апаратурної реалізації.
Виявити в алгоритмі паралелізм і навіть керувати н и м , з а б е з п е ч у ю ч и т и м с а м и м м о ж ­
ливість з н а х о д ж е н н я к о м п р о м і с н и х п р о с т о р о в о - ч а с о в и х співвідношень, що є г о л о в н и м
при виборі с т р у к т у р и о б ч и с л ю в а л ь н о г о п р и с т р о ю , д о з в о л я є п р е д с т а в л е н н я г р а ф а алго­
ритму в потоковій (ярусно-паралельній) ф о р м і . Таке п р е д с т а в л е н н я графа означає розді­
лення всіх його в е р ш и н по ярусах т а к и м ч и н о м , що в і-му ярусі р о з м і щ е н і тільки функ­
ціональні оператори, які залежать хоча б від одного ф у н к ц і о н а л ь н о г о оператора (і-І)-го
яруса і не з а л е ж а т ь від ф у н к ц і о н а л ь н и х операторів, які не входять в яруси з м е н ш и м и
ніж і номерами. Всередині яруса ф у н к ц і о н а л ь н і оператори м і ж собою не м а ю т ь з'єднань.
Описаний граф н а з и в а ю т ь п о т о к о в и м г р а ф о м (ПГ) алгоритму. На рис. 7.6Ь представлено
ПГ раніше р о з г л я н у т о г о алгоритму, де ш т р и х о в и м и лініями розділені я р у с и графа.
ПГ а л г о р и т м у х а р а к т е р и з у є т ь с я н а б о р о м ф у н к ц і о н а л ь н и х о п е р а т о р і в Фі) ( і = 1 , 2,...,Р;
)=1,2,...,Іл), де і - н о м е р яруса, Р - кількість я р у с і в , ) - н о м е р ф у н к ц і о н а л ь н о г о о п е р а т о р а
в ярусі, Іл - їх кількість в ярусі, а т а к о ж н а б о р о м каналів Кп з в ' я з к у м і ж ф у н к ц і о н а л ь н и ­
ми о п е р а т о р а м и .
П р и розгляді п и т а н ь п р о е к т у в а н н я п р и с т р о ю д л я в и к о н а н н я д е я к о г о а л г о р и т м у у
вигляді надвеликої інтегральної схеми (НВІС), в и к о р и с т о в у ю т ь й о г о к о н к р е т и з о в а н и й
потоковий г р а ф . В к о н к р е т и з о в а н о м у п о т о к о в о м у графі а л г о р и т м у всі ф у н к ц і о н а л ь н і
оператори в х о д я т ь до бібліотеки ф у н к ц і о н а л ь н и х елементів Н В І С , на базі якої реалі­
зується алгоритм. Тобто к о ж н о м у ф у н к ц і о н а л ь н о м у о п е р а т о р у а л г о р и т м у м о ж е бути
поставлений у відповідність як м і н і м у м о д и н ф у н к ц і о н а л ь н и й елемент із бібліотеки
ф у н к ц і о н а л ь н и х елементів НВІС. Таке п р е д с т а в л е н н я а л г о р и т м у з а б е з п е ч у є м о ж л и в і с т ь
пошуку н а й е ф е к т и в н і ш о г о в а р і а н т у й о г о а п а р а т у р н о ї реалізації.

7.6. Виконання складних операцій в арифметико-логічному


пристрої
Виконання деякої операції м о ж н а здійснити цілим р я д о м способів, для я к и х характер­
на єдина семантична основа, що визначається г р а ф о м а л г о р и т м у цієї операції, тобто одні і
ті ж операції м о ж у т ь виконуватися по р і з н о м у та з р і з н и м ступенем р о з п а р а л е л ю в а н н я .
Я к щ о в и к о р и с т о в у в а т и для в и к о н а н н я г р а ф а а л г о р и т м у б а г а т о ф у н к ц і о н а л ь н и й
АЛП, я к и й в и к о н у є елементарні операції, наприклад, відповідно до табл. 7.1, то це потре­
бує перетворення всіх процесів, які підлягають в и к о н а н н ю за д а н и м алгоритмом, в послі­
довну процедуру переробки і передачі інформації. Більш того, значна частина функціональ­
них операторів алгоритму реалізується в такому А Л П з в и к о р и с т а н н я м достатньо великого
числа елементарних операцій. Разом з цим, просторова передача інформації м і ж в е р ш и н а м и
графа повинна бути перетворена в послідовну в часі передачу інформації м і ж А Л П і осно­
вною пам'яттю або регістрами процесора. Таким ч и н о м , послідовно-паралельний процес
виконання алгоритму згідно з його графом, що має просторову структуру, перетвориться в
246

послідовну процедуру переробки і передачі інформації в багатофункціональному АЛП. Це


призводить до того, що швидкість обчислення складних операцій в А Л П є низькою.
Висока п р о д у к т и в н і с т ь о б р о б к и д а н и х в сучасних к о м п ю т е р а х досягається завдяки
в и к о р и с т а н н ю п р о с т о р о в о г о і ч а с о в о г о паралелізму з у р а х у в а н н я м д о с я г н е н ь інтеграль­
ної технології. Серед о с н о в н и х ідей слід в и д і л и т и к о н в е є р н у організацію обчислень,
п о є д н а н н я о б р о б к и н а різних рівнях, в и к о р и с т а н н я декількох п а р а л е л ь н о працюючих
А Л П з к о н в е є р н и м п р и н ц и п о м о б р о б к и даних, з а с т о с у в а н н я секцій в е к т о р н и х регістрів
в регістровій п а м ' я т і , р о з ш а р у в а н н я пам'яті, з а с т о с у в а н н я найбільш швидкої елемент­
ної б а з и з тією м е т о ю , щ о б в м а к с и м а л ь н і й мірі з а б е з п е ч и т и р о з п а р а л е л ю в а н н я вико­
н а н н я о п е р а ц і й . О с о б л и в о ц і к а в о ю в ц ь о м у плані є ідея п і д в и щ е н н я п р о д у к т и в н о с т і та
е ф е к т и в н о с т і за р а х у н о к с т а т и ч н о ї і д и н а м і ч н о ї п р о г р а м н о ї зміни с т р у к т у р и системи
в цілях її н а б л и ж е н н я до с т р у к т у р и г р а ф а алгоритму, тобто її р е к о н ф і г у р а ц і я . В основі
концепції А Л П з р е к о н ф і г у р о в а н о ю с т р у к т у р о ю л е ж и т ь п р и н ц и п , згідно з я к и м струк­
т у р а А Л П , ф у н к ц і ї його о п е р а ц і й н и х п р и с т р о ї в , а т а к о ж способи організації обчислю­
в а л ь н о г о п р о ц е с у п о в и н н і відповідати с т р у к т у р і г р а ф а в и к о н у в а н о г о алгоритму, а не
н а в п а к и , як це має місце у т р а д и ц і й н и х А Л П , коли в цілях реалізації а л г о р и т м у в рамках
ж о р с т к о ї с т р у к т у р и А Л П а л г о р и т м м о д и ф і к у є т ь с я так, щ о й о м у надається форма, від­
повідна с т р у к т у р і А Л П . Ч и м більше а д а п т о в а н а с т р у к т у р а А Л П д о специфіки вирішу­
в а н и х задач, т и м с у т т є в і ш е п о к р а щ у ю т ь с я його х а р а к т е р и с т и к и . Така адаптація дося­
гається ш л я х о м п е р е к л а д е н н я о б ч и с л ю в а л ь н и х п р о ц е д у р з п р о г р а м н о г о забезпечення
на а п а р а т н у частину, ч о м у с п р и я ю т ь в р а ж а ю ч і успіхи в області інтегральної технології.
Це, з о к р е м а , п о я в а п р о г р а м о в а н и х логічних і н т е г р а л ь н и х схем (ПЛІС), що дозволяє в
н а й к о р о т ш і т е р м і н и реалізувати на їх базі к р у п н і ф у н к ц і о н а л ь н і вузли. Це і можливість
с т в о р е н н я с п е ц і а л і з о в а н и х Н В І С місткістю в десятки і сотні м і л ь й о н і в транзисторів, що
п р и в е л о до р а д и к а л ь н и х змін як в області технологічних та і н с т р у м е н т а л ь н и х засобів,
так і в п р и н ц и п а х п р о е к т у в а н н я .
Таким ч и н о м , розглядаючи п р и н ц и п и побудови АЛП, доцільно це робити в тісному
зв'язку з графом виконуваного алгоритму, що дозволяє в и я в и т и всі ф о р м и паралелізму, на­
явні в ньому. Граф алгоритму, а особливо його потокова форма, в наочній формі відображає
фундаментальні обмеження, що визначають в н у т р і ш н ю семантику ряду різних алгоритмів
для о т р и м а н н я одних і тих же результатів. Найбільш високі параметри досягаються в АЛП,
структура я к и х більше наближена до структури графа виконуваного алгоритму.

7.7. Структура арифметико-логічного пристрою


В б і л ь ш о с т і к о м п ' ю т е р і в А Л П в и к о н у є операції над д в о м а в х і д н и м и д а н и м и , тобто є
д в о м і с н и м , та в и д а є один в и х і д н и й результат, як це п о к а з а н о на рис. 7.7. П р и ц ь о м у спо­
чатку о п е р а н д и А та В з а п и с у ю т ь с я у вхідні регістри Р г і і Рг2, та п о с т у п а ю т ь на входи
А Л П через м у л ь т и п л е к с о р и М П 1 і М П 2 , які керуються сигналами У1 та У2. Після цього в
А Л П в и к о н у є т ь с я задана о п е р а ц і я , тип якої з а д а є т ь с я кодом операції. Результат операції
п о с т у п а є на вихід А Л П та з а п и с у є т ь с я у в и х і д н и й регістр РгЗ. З в и х о д у вказаного регі­
стра результат п о с т у п а є в р е г і с т р о в и й ф а й л п р о ц е с о р а , а крім того, я к щ о він потрібний
для в и к о н а н н я н а с т у п н о ї операції, він п о с т у п а є через м у л ь т и п л е к с о р и М П 1 або М П 2
на о д и н з входів А Л П , що з д і й с н ю є т ь с я ш л я х о м п о д а н н я відповідних значень керуючих
сигналів на ходи м у л ь т и п л е к с о р і в .
247

Операнд А Операнд В

Рг1 Рг2

У1 У2
МП1 МП2

Код операдм
АЛП

РгЗ

Результат

Рис. 7.7. Типова структура АЛП

В сучасних комп'ютерах А Л П є багатоблоковими. В них окремі групи операцій над кож­


ним типом операндів виконуються о к р е м и м и блоками, які називаються о п е р а ц і й н и м и при­
строями. Це дозволяє підвищити продуктивність А Л П за рахунок паралельного в и к о н а н н я
операцій. Узагальнена структура А Л П сучасного комп'ютера представлена на рис. 7.8.

Код операції Інформаційні входи

Комутуюча мережа

11
Пристрій для
виконання ОПп
елементарних от ОП2

операцій

І Стани

Комутуюча мережа

Інформаційні виходи

Рис. 7.8. Структура АЛП сучасного комп 'ютера

Д о складу А Л П , крім в и щ е о п и с а н о г о п р и с т р о ю д л я в и к о н а н н я е л е м е н т а р н и х опера­


цій, входять п о п е р а ц і й н и х п р и с т р о ї в О П 1 , О П 2 , О П п , я к і в и к о н у ю т ь складні опера­
ції. Кількість п ц и х п р и с т р о ї в та їх функції в и з н а ч а ю т ь с я к о н с т р у к т о р а м и к о м п ' ю т е р а
з а л е ж н о від с ф е р и його в и к о р и с т а н н я . Входи та виходи о п е р а ц і й н и х п р и с т р о ї в А Л П
підключаються до його і н ф о р м а ц і й н и х входів та виходів за д о п о м о г о ю к о м у т у ю ч и х ме­
реж, я к и м и керує код в и к о н у в а н о ї операції. Ц и м ж е к о д о м в и б и р а є т ь с я т и п в и к о н у в а н о ї
операції в п р и с т р о ї для в и к о н а н н я е л е м е н т а р н и х о п е р а ц і й та в о п е р а ц і й н о м у пристрої,
я к щ о він м о ж е в и к о н у в а т и декілька операцій.
248

Як п р и к л а д А Л П р е а л ь н о г о к о м п ' ю т е р а , на рис. 7.9 п р е д с т а в л е н о А Л П програмова­


н о г о п р о ц е с о р а N I O S 2.0 ф і р м и Altera. Як б а ч и м о , цей А Л П м а є наступні блоки: два вхід­
н и х регістри RA та RB, два д в о в х о д о в и х м у л ь т и п л е к с о р и для подачі д а н и х на обробку
а б о з вхідних регістрів, а б о з вихідного регістра, о п е р а ц і й н і п р и с т р о ї - а р и ф м е т и ч н и й ,
л о г і ч н и й , з с у в у та в и д і л е н н я б а й т і в і слів, а т а к о ж в и х і д н и й м у л ь т и п л е к с о р , необхідний
д л я п і д к л ю ч е н н я до входу в и х і д н о г о регістра в и х о д у відповідного о п е р а ц і й н о г о при­
с т р о ю , і сам в и х і д н и й регістр.
RA
ЕІ
/ ООреплДО
ри Operandi?

1 1 1 1

^3
BytetWoni
LopoUmt Shifter-Unit
Extraction Urni

=1
Рис. 7.9. Структура АЛП програмованого процесора NIOS 2.0 фірми Altera

Ще більшу кількість паралельних блоків м а ю т ь А Л П процесорів UltraSPARC фірми


Sun Microsystems та РА-8000 ф і р м и Huwlett-Packard, с т р у к т у р и я к и х наведено на рис. 7.10а
та рис. 7.10b відповідно.

а Ь

Рис. 7.10. Структури АЛП процесорів UltraSPARC фірми Sun Microsystems (а)
та РА-8000 фірми Huwlett-Packard (b)

А Л П п р о ц е с о р а U l t r a S P A R C ф і р м и Sun Microsystems м а є два блоки для в и к о н а н н я


е л е м е н т а р н и х о п е р а ц і й над ц і л и м и ч и с л а м и ( A L U 1 т а A L U 2 ) , п е р е м н о ж у в а ч т а поділь-
249

ник чисел з ф і к с о в а н о ю к о м о ю ( M U L , D I V ) , д в а А Л П д л я о б р о б к и д а н и х з р у х о м о ю к о ­
мою ( F A L U 0 т а F A L U 1 ) . А Л П п р о ц е с о р а U l t r a S P A R C м о ж е в и к о н у в а т и д о ч о т и р ь о х опе­
рацій за один такт.
П р о ц е с о р РА-8000 ф і р м и Huwlett-Packard є с у п е р с к а л я р н и м п р о ц е с о р о м з н е в п о -
рядкованим виконанням команд, який може виконувати до чотирьох команд за один
такт. Й о г о А Л П в к л ю ч а є п о д в а н а с т у п н и х б л о к и (длоки, р о з м і щ е н і з в е р х у д о н и з у н а
рис. 7.10b): 6 4 - р о з р я д н е А Л П д л я в и к о н а н н я е л е м е н т а р н и х о п е р а ц і й над ц і л о ч и с л о в и ­
ми даними, операційний пристрій зсуву та сортування, операційний пристрій множен­
ня та накопичення, операційний пристрій ділення та добування квадратного кореня.
Функції п р и с т р о ю д л я в и к о н а н н я е л е м е н т а р н и х о п е р а ц і й р а н і ш е було р о з г л я н у т о .
Розглянемо далі о р г а н і з а ц і ю р о б о т и о п е р а ц і й н и х п р и с т р о ї в .

7.8. Т и п и операційних пристроїв


З а л е ж н о від п р и н ц и п і в п о б у д о в и м о ж н а п р о в е с т и н а с т у п н у к л а с и ф і к а ц і ю о п е р а ц і й ­
них п р и с т р о ї в :
• Табличні о п е р а ц і й н і п р и с т р о ї - о п е р а ц і й н і п р и с т р о ї , в я к и х з н а ч е н н я результа­
ту ш у к а є т ь с я за а д р е с о ю , р і в н о ю з н а ч е н н ю о п е р а н д а , в н а п е р е д с ф о р м о в а н і й таблиці, в
ролі якої в и к о р и с т о в у є т ь с я п а м ' я т ь .
• Алгоритмічні операційні пристрої - операційні пристрої, в яких задана операція
виконується ш л я х о м а п а р а т н о ї реалізації а л г о р и т м у цієї операції.
• Т а б л и ч н о - а л г о р и т м і ч н і о п е р а ц і й н і п р и с т р о ї - с т и с н у т а в таблиці (пам'яті) і н ф о р ­
мація в і д н о в л ю є т ь с я ш л я х о м в и к о н а н н я е л е м е н т а р н и х т а с к л а д н и х о п е р а ц і й .
Під а п а р а т н о ю р е а л і з а ц і є ю а л г о р и т м у р о з у м і є т ь с я його в и к о н а н н я без участі п р о ­
граміста ( п р о г р а м и , яка з ч и т у є т ь с я з о с н о в н о ї п а м ' я т і ) . П р и ц ь о м у а л г о р и т м і ч н і та та­
б л и ч н о - а л г о р и т м і ч н і о п е р а ц і й н і п р и с т р о ї в свою чергу д і л я т ь с я на:
• Багатотактові о п е р а ц і й н і п р и с т р о ї - о п е р а ц і й н і п р и с т р о ї , в я к и х задана о п е р а ц і я
виконується ш л я х о м п о с л і д о в н о г о п о т а к т о в о г о в и к о н а н н я ф у н к ц і о н а л ь н и х о п е р а т о р і в
алгоритму цієї операції. П о т а к т о в е в и к о н а н н я о п е р а ц і й в т а к и х п р и с т р о я х з а д а є т ь с я мі-
к р о п р о г р а м о ю , я к а складається з м і к р о к о м а н д , що в и к о н у ю т ь е л е м е н т а р н і операції.
• О д н о т а к т о в і о п е р а ц і й н і п р и с т р о ї - о п е р а ц і й н і п р и с т р о ї , в я к и х а п а р а т н о відо­
бражається г р а ф в и к о н у в а н о г о а л г о р и т м у і з а д а н а о п е р а ц і я в и к о н у є т ь с я ш л я х о м о д н о ­
разового п р о х о д ж е н н я д а н и х ч е р е з о п е р а ц і й н і вузли, які в и к о н у ю т ь ф у н к ц і о н а л ь н і опе­
ратори а л г о р и т м у цієї операції. В и х о д я ч и з п р и н ц и п і в п о б у д о в и , такі п р и с т р о ї м о ж н а
назвати г р а ф - а л г о р и т м і ч н и м и о п е р а ц і й н и м и п р и с т р о я м и .
• К о н в е є р н і о п е р а ц і й н і п р и с т р о ї - о п е р а ц і й н і пристрої, в я к и х а п а р а т н о в і д о б р а ж а ­
ється п о т о к о в и й г р а ф в и к о н у в а н о г о а л г о р и т м у з р о з д і л е н н я м я р у с і в г р а ф а р е г і с т р а м и .
Виходячи з п р и н ц и п і в п о б у д о в и , такі п р и с т р о ї м о ж н а н а з в а т и к о н в е є р н и м и г р а ф - а л г о ­
ритмічними операційними пристроями.
Р о з г л я н е м о с п о ч а т к у будову та о с о б л и в о с т і н а й п р о с т і ш и х з н а з в а н и х т а б л и ч н и х опе­
раційних пристроїв, далі п р и н ц и п и п о б у д о в и багатотактових, о д н о т а к т о в и х , та к о н в е є р ­
них операційних пристроїв, основні ідеї, закладені в т а б л и ч н о - а л г о р и т м і ч н и х о п е р а ц і й н и х
пристроях, а після ц ь о г о п и т а н н я організації р о б о т и о п е р а ц і й н и х п р и с т р о ї в , побудованих
за п р и н ц и п а м и приведеної в и щ е класифікації, для в и к о н а н н я к о н к р е т н и х о п е р а ц і й .
252

тів. Вже навіть при н е в е л и к и х р о з р я д н о с т я х аргументів о б ' є м П З П для даного випадку


є з н а ч н и м , т о м у цей м е т о д р і д к о з а с т о с о в у є т ь с я д л я в и к о н а н н я операцій над більш ніж
одним аргументом.
Р о з г л я н е м о п р и к л а д . Н е х а й р о з р я д н і с т ь вхідних т а в и х і д н и х д а н и х рівна п = т = 8 бі­
тів, а кількість в и к о н у в а н и х ф у н к ц і й К=4. Тоді о б ' є м П З П буде р і в н и м 0 = 4*8*2 = 256- 16

КВ, щ о цілком п р и й н я т н о д л я реалізації.


Розглянемо інший приклад. Нехай розрядність вхідних та вихідних даних рівна п = т = 1 6
бітів, а кількість виконуваних функцій К=4. Тоді об'єм П З П буде рівним 0 = 4*16*2 = 32СВ, 32

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

7. ТО. Багатотактовий операційний пристрій


До складу б а г а т о т а к т о в о г о о п е р а ц і й н о г о п р и с т р о ю , с т р у к т у р а я к о г о приведена на
рис. 7.13, входять: б а г а т о ф у н к ц і о н а л ь н а к о м б і н а ц і й н а схема, вхідні і вихідні регістри, а
т а к о ж м у л ь т и п л е к с о р и , необхідні д л я с т в о р е н н я каналів п е р е д а в а н н я даних. Формуван­
ня к е р у ю ч и х сигналів для з а п и с у д а н и х до регістрів, з а д а н н я коду операції та керуван­
н я п р о п у с к о м даних через м у л ь т и п л е к с о р и , з д і й с н ю є п р и с т р і й к е р у в а н н я операційним
п р и с т р о є м , п р и н ц и п и п о б у д о в и я к о г о будуть р о з г л я н у т і в н а с т у п н о м у розділі.

Код операції ті
Операнд А Операнд в
С1
РґІ Рг2
С2

• І , У1 У2
МП1 МП2 Пристрій
керування
Код
Багатофункціональна мікрооперацїі
комбінаційна схема

СЗ
РгЗ

, Результат Завершення 1 Початок

Рис. 7.13. Структура багатотактового операційного пристрою

Б а г а т о т а к т о в и й о п е р а ц і й н и й п р и с т р і й в и к о н у є операції над д в о м а вхідними дани­


м и , т о б т о є д в о м і с н и м , та в и д а є один в и х і д н и й результат, як це п о к а з а н о на рис. 7.13.
П р и ц ь о м у спочатку о п е р а н д и А та В з а п и с у ю т ь с я у вхідні регістри Р г і і Рг2, та по-
253

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


МШ та М П 2 , які керуються с и г н а л а м и У1 та Y2, що п о с т у п а ю т ь з п р и с т р о ю к е р у в а н ­
ня. Після ц ь о г о в б а г а т о ф у н к ц і о н а л ь н і й к о м б і н а ц і й н і й схемі в и к о н у є т ь с я задана м і к р о -
операція, тип якої з а д а є т ь с я кодом м і к р о о п е р а ц і ї , що п о с т у п а є з п р и с т р о ю к е р у в а н н я .
Результат м і к р о о п е р а ц і ї п о с т у п а є на вихід б а г а т о ф у н к ц і о н а л ь н о ї к о м б і н а ц і й н о ї схеми
та записується у вихідний регістр РгЗ. З в и х о д у в к а з а н о г о регістра п р о м і ж н и й результат
п о с т у п а є через м у л ь т и п л е к с о р и М П 1 або М П 2 на один з входів б а г а т о ф у н к ц і о н а л ь н о ї
комбінаційної схеми для в и к о н а н н я н а с т у п н о ї мікрооперації, щ о з д і й с н ю є т ь с я ш л я х о м
п о д а н н я з п р и с т р о ю к е р у в а н н я в і д п о в і д н и х з н а ч е н ь к е р у ю ч и х сигналів У1 та У2 на вхо­
ди мультиплексорів. З а п и с д а н и х до регістрів здійснюється с и г н а л а м и С1 -СЗ з п р и с т р о ю
керування. П р и с т р і й к е р у в а н н я п о ч и н а є в и к о н а н н я операції після п о с т у п л е н н я н а й о г о
входи сигналу п о ч а т к у р о б о т и , коду о п е р а ц і ї та т а к т о в и х імпульсів ТІ. Після з а в е р ш е н н я
в и к о н а н н я операції на виході регістра РгЗ буде результат операції, а п р и с т р і й к е р у в а н н я
с ф о р м у є сигнал з а в е р ш е н н я р о б о т и
П р и побудові б а г а т о т а к т о в о г о о п е р а ц і й н о г о п р и с т р о ю в и н и к а є дві задачі: синтез ба­
г а т о ф у н к ц і о н а л ь н о ї к о м б і н а ц і й н о ї схеми, я к а б з а б е з п е ч у в а л а р е а л і з а ц і ю всіх ф у н к ц і о ­
нальних операторів алгоритму, та синтез п р и с т р о ю к е р у в а н н я , я к и й генерує сигнали ке­
р у в а н н я д л я з а б е з п е ч е н н я організації в и к о н а н н я ф у н к ц і о н а л ь н и х о п е р а т о р і в а л г о р и т м у
ш л я х о м т и м ч а с о в о г о з а п а м ' я т о в у в а н н я п р о м і ж н и х результатів в регістрах та п о д а н н я 'їх
на входи б а г а т о ф у н к ц і о н а л ь н о ї к о м б і н а ц і й н о ї схеми в п о т р і б н о м у такті
Для синтезу б а г а т о ф у н к ц і о н а л ь н о ї к о м б і н а ц і й н о ї схеми та п р и с т р о ю к е р у в а н н я п о ­
трібно в и з н а ч и т и всі мікрооперації, я к і необхідно в и к о н а т и для реалізації з а д а н о ї опе­
рації та послідовність їх в и к о н а н н я . Це м о ж н а з р о б и т и , з о к р е м а , ш л я х о м переходу від
п р о с т о р о в о г о графа а л г о р и т м у в и к о н а н н я операції д о часового г р а ф а ц ь о г о алгоритму,
як це п о к а з а н о на рис. 7.14. На основі п р е д с т а в л е н о г о на рис. 7.14а п р о с т о р о в о г о г р а ф а
алгоритму м о ж н а в и з н а ч и т и кількість т а т и п и ф у н к ц і о н а л ь н и х о п е р а т о р і в , які м а ю т ь
бути виконані б а г а т о ф у н к ц і о н а л ь н о ю к о м б і н а ц і й н о ю схемою та послідовність їх в и к о ­
нання ш л я х о м з в е д е н н я графа до однієї в е р ш и н и ФО = {ФОі, і = 1,2,...,7} (рис. 7.14Ь).
Тобто часовий г р а ф будується ш л я х о м о б ' є д н а н н я всіх ф у н к ц і о н а л ь н и х операторів ал­
горитму та їх зв'язків.
* х,

У, У, г„г,
а) Ь)
Рис. 7.14. Перехід від просторового графа алгоритму до часового
254

П р о с т о р о в и й г р а ф а л г о р и т м у с к л а д а є т ь с я з ф у н к ц і о н а л ь н и х операторів, я к и м від­
повідають о б ч и с л ю в а л ь н і операції, та дуг, я к и м и здійснюється передача даних для об­
р о б к и . Ч а с о в и й г р а ф а л г о р и т м у складається з однієї в е р ш и н и , я к а послідовно виконує
операції п р о с т о р о в о г о графу. Д а н и й г р а ф х а р а к т е р и з у є т ь с я наявністю вхідних та вихід­
н и х вузлів, які є н е з а л е ж н и м и входами (виходами) в е р ш и н и графу. П о д а в а н н я вхідних
д а н и х та видача в и х і д н и х д а н и х з д і й с н ю є т ь с я у певні п р о м і ж к и часу (такти). Вхідні дані
Х та Х п о с т у п а ю т ь на 1 та 2 такті, а видача в и х і д н и х результатів У та У відбувається на
1 2 ; 2

8 та 9 тактах. На в х і д н и х та вихідних дугах г р а ф у з о б р а ж е н і числа, які в к а з у ю т ь порядок


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

7.11. Однотактовий операційний пристрій


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

Вхідні дані
Рг Рг

Вихідні дані

ФО - функціональний оператор

КС - комбінаційна схема

Рис. 7.15. Просторовий граф алгоритму та його апаратне відображення


255

К о ж н о м у ф у н к ц і о н а л ь н о м у о п е р а т о р у а л г о р и т м у ФО п о с т а в л е н а у відповідність
комбінаційна схема КС, яка його в и к о н у є . На вході та виході о п е р а ц і й н о г о п р и с т р о ю
включені регістри.
Часова затримка в однотактовому операційному пристрої Т визначається сумою за­ о п

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

і І
Цей ш л я х (їх м о ж е бути декілька) н а з и в а є т ь с я к р и т и ч н и м ш л я х о м . О б ч и с л е н н я часу
виконання а л г о р и т м у в о д н о т а к т о в о м у о п е р а ц і й н о м у п р и с т р о ї з в о д и т ь с я , т а к и м ч и н о м ,
до з н а х о д ж е н н я к р и т и ч н о г о шляху.
Затрати о б л а д н а н н я \ У н а о д н о т а к т о в и й о п е р а ц і й н и й п р и с т р і й в и з н а ч а ю т ь с я су­
0 П

мою затрат о б л а д н а н н я \У". на р е а л і з а ц і ю к о м б і н а ц і й н и х схем К С , т о б т о

і
а т а к о ж на вхідні та вихідні регістри.

7.12. Конвеєрний операційний пристрій


К о н в е є р н и й п р и н ц и п о б р о б к и передбачає с у м і щ е н н я в часі в и к о н а н н я операторів
алгоритму над р і з н и м и д а н и м и . О д н и м із м о ж л и в и х підходів т у т є к о н в е є р и з а ц і я одно-
тактових О П , с т р у к т у р а я к и х б а з у є т ь с я н а а п а р а т н о м у в і д о б р а ж е н н і п о т о к о в о г о г р а ф а
виконуваного алгоритму. На рис. 7.16 п о к а з а н о с т р у к т у р у к о н в е є р н о г о о п е р а ц і й н о г о
пристрою, я к и й реалізує п о т о к о в и й г р а ф алгоритму, н а в е д е н и й на рис. 7.6.

а Ь

Рис. 7.16. Потоковий граф алгоритму а) та структура конвеєрного


операційного пристрою, який його реалізує Ь)

Я к м и вже в и я с н и л и , п о т о к о в и м г р а ф о м а л г о р и т м у н а з и в а ю т ь таке п р е д с т а в л е н н я
графа, яке передбачає р о з д і л е н н я всіх його в е р ш и н по ярусах т а к и м ч и н о м , що в і-му
256

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


о н а л ь н о г о о п е р а т о р а ( і - І ) - г о я р у с а і не з а л е ж а т ь від ф у н к ц і о н а л ь н и х операторів, які не
в х о д я т ь в я р у с и з м е н ш и м и н і ж і н о м е р а м и . Всередині я р у с а ф у н к ц і о н а л ь н і оператори
м і ж с о б о ю не м а ю т ь з ' є д н а н ь . На рис. 7.16а ш т р и х о в и м и л і н і я м и розділені яруси графа.
П р и побудові к о н в е є р н о г о о п е р а ц і й н о г о п р и с т р о ю к о ж н о м у ф у н к ц і о н а л ь н о м у опера­
т о р у а л г о р и т м у п о с т а в л е н а у в і д п о в і д н і с т ь к о м б і н а ц і й н а схема КС, я к а його виконує,
і, крім того, к о м б і н а ц і й н і схеми, які в и к о н у ю т ь ф у н к ц і о н а л ь н і о п е р а т о р и ярусів пото­
к о в о г о г р а ф а алгоритму, р о з д і л я ю т ь с я к о н в е є р н и м и р е г і с т р а м и КР, як це п о к а з а н о на
рис. 7.16Ь.
Таким ч и н о м , апаратне в і д о б р а ж е н н я а л г о р и т м у означає послідовне з'єднання ком­
бінаційних схем, к о ж н а з я к и х в и к о н у є операції одного яруса алгоритму. В конвеєрному
о п е р а ц і й н о м у п р и с т р о ї к о м б і н а ц і й н і схеми з'єднані м і ж с о б о ю через конвеєрні регістри.
З а д а н и й а л г о р и т м в и к о н у є т ь с я над в х і д н и м и д а н и м и п р и їх о д н о к р а т н о м у прохо­
д ж е н н і через к о н в е є р н и й о п е р а ц і й н и й п р и с т р і й .
Н а й б і л ь ш а д о в ж и н а к о н в е є р а т а к о г о к о н в е є р н о г о о п е р а ц і й н о г о п р и с т р о ю дорівнює
кількості Р ярусів алгоритму. Такий к о н в е є р н и й о п е р а ц і й н и й пристрій має найвищу
частоту, я к а м о ж е б у т и д о с я г н у т а п р и а п а р а т н і й реалізації з а д а н о г о конкретизованого
ПГ алгоритму.
Узагальнена с т р у к т у р а к о н в е є р н о г о о п е р а ц і й н о г о п р и с т р о ю наведена на рис. 7.17.
і) V у т К

КРД КРК 1

1-І
КС 1

КРД 2

КС 2

КС т

КРД т 1

і і І —

Рис. 7.17. Структура конвеєрного операційного пристрою

Тут Хі - входи п о с т у п л е н н я д а н и х (і = 1, 2 г), г - кількість входів, Yj - виходи ре­


зультатів о б ч и с л е н ь ()' = 1, 2 в), в - кількість виходів, КРД і К Р К - конвеєрні регістри
відповідно до д а н и х Д і к о м а н д К, т - кількість ярусів ПГ алгоритму, п - кількість ярусів
к о н в е є р а к о н в е є р н о г о о п е р а ц і й н о г о п р и с т р о ю . Я к щ о с т р у к т у р а конвеєрного операцій­
ного п р и с т р о ю о р і є н т о в а н а на р е а л і з а ц і ю алгоритму, я к и й о б ч и с л ю є одну функцію, він
н а з и в а є т ь с я о д н о ф у н к ц і о н а л ь н и м , групу ф у н к ц і й - б а г а т о ф у н к ц і о н а л ь н и м . В багато­
ф у н к ц і о н а л ь н о м у к о н в е є р н о м у о п е р а ц і й н о м у п р и с т р о ї п р о г р а м у ю т ь с я канали передачі
257

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


багатофункціонального а л г о р и т м у
В о д н о ф у н к ц і о н а л ь н о м у к о н в е є р н о м у о п е р а ц і й н о м у п р и с т р о ї вихідні дані У = -.у,
у,
2 ,у о д н о з н а ч н о в и з н а ч а ю т ь с я вхідними д а н и м и X = х ^ ,
5 ,х і ф у н к ц і є ю Ф, з а ш и т о ю
г

в його структурі: У = Ф(Х). В з а г а л ь н о м у в и п а д к у У = {У }, X - {Х }, т о б т о о б р о б ц і під­


кГ г

лягають м а т р и ц і даних. П р и ц ь о м у к = 1, 2,..., в;) = 1, 2,..., г; і = 1, 2,..., N . де г, в - КІЛЬКІСТЬ


входів і виходів к о н в е є р н о г о о п е р а ц і й н о г о п р и с т р о ю , N - кількість груп чисел, я к і п о ­
ступають в к о н в е є р н и й о п е р а ц і й н и й п р и с т р і й . Д л я к о ж н о г о яруса о д н о ф у н к ц і о н а л ь н о -
го к о н в е є р н о г о о п е р а ц і й н о г о п р и с т р о ю м о ж н а з а п и с а т и А = Ф (Аі), де Аі - в м і с т и м е ре­
гістрів і-го яруса, Ф - о п е р а ц і я , що в и з н а ч а є т ь с я ф у н к ц і о н а л ь н и м и о п е р а т о р а м и (і+1)-го
яруса ПГ а л г о р и т м у і в и к о н у є т ь с я в (і+1)-му ярусі к о н в е є р н о г о о п е р а ц і й н о г о п р и с т р о ю .
Так як А = X; А , - ФДА,,); А = Ф ^ А ^ і т. д., то У = Ф (Ф(...(Ф (Х))...)) т о б т о ф у н к ц і я Ф
0 2 т 1 >

виконується над д а н и м и , які н а д х о д я т ь в к о н в е є р н и й о п е р а ц і й н и й п р и с т р і й , п р и їх п р о ­


ходженні через всі я р у с и к о н в е є р а
Нехай в к о н в е є р н о м у о п е р а ц і й н о м у п р и с т р о ї о б р о б л я є т ь с я м а с и в чисел X = {Х^
Х ,..., Хг}, г = 1, 2,..., N. В п е р ш о м у такті т а к т о в и м і м п у л ь с о м Т в регістр К Р Д з а п и с у є т ь с я
2 1

значення Х Н а д н и м в к о м б і н а ц і й н і й схемі К С п е р ш о г о яруса в и к о н у є т ь с я о п е р а ц і я


г 1

Ф Другим т а к т о в и м і м п у л ь с о м результати цієї операції п е р е п и ш у т ь с я в регістр КРД , а


г 2

в регістр КРД з а п и ш е т ь с я з н а ч е н н я Х . В к о м б і н а ц і й н и х схемах К С ^ К С над з н а ч е н н я ­


1 2 2

ми, що зберігаються в і д п о в і д н о в регістрах К Р Д і К Р Д в и к о н у ю т ь с я о п е р а ц і ї Ф і Ф . В


] 2 ] 2

т р е т ь о м у такті результати із К С з а п и ш у т ь с я в К Р Д і т. д. На регістри ярусів к о н в е є р а ,


2 3

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


я к и м и в и к о н у ю т ь с я ті ж операції. П р и п о в н і й загрузці к о н в е є р а о д н о ч а с н о в и к о н у ю т ь ­
ся оператори всіх т ярусів алгоритму. С т а н к о н в е є р н о г о о п е р а ц і й н о г о п р и с т р о ю в 1-му
такті його р о б о т и при о б р о б ц і N чисел в и з н а ч а є т ь с я в е к т о р о м А(г) = |А (ОА (г)...А
де І = 1, 2,..., (т + N0. П р и ц ь о м у А ( і ) = У , т о б т о в к о ж н о м у такті на виході к о н в е є р н о г о
т (

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


заповнюється к о н в е є р
Регістри ярусів м а ю т ь р о з р я д н і с т ь , р і в н у р о з р я д н о с т і вихідної і н ф о р м а ц і ї і-го яруса
ПГ а л г о р и т м у
К о ж н и й б а г а т о ф у н к ц і о н а л ь н и й к о н в е є р н и й о п е р а ц і й н и й п р и с т р і й п о в и н е н мати
деяку кількість елементів, п р и з н а ч е н и х д л я з а б е з п е ч е н н я н а л а ш т у в а н н я на з а д а н у опе­
рацію. Зокрема, к о м б і н а ц і й н і схеми К С ярусів м о ж у т ь в м і щ у в а т и к о м у т а т о р и п р я м и х
зв язків, з допомогою я к и х під дією к е р у ю ч и х сигналів в и к о н у є т ь с я н а л а ш т у в а н н я КС на
виконання необхідних операцій. Відміна с т р у к т у р и б а г а т о ф у н к ц і о н а л ь н о г о к о н в е є р н о ­
го ОП від о д н о ф у н к ц і о н а л ь н о г о з а к л ю ч а є т ь с я т а к о ж в н а я в н о с т і к о н в е є р н и х регістрів
команд КРК, що зберігають код операції, а т а к о ж зв язків для н а л а ш т у в а н н я на п о т р і б н у
операцію к о м б і н а ц і й н и х схем ярусів к о н в е є р н о г о о п е р а ц і й н о г о п р и с т р о ю . Тут по кон­
веєру с и н х р о н н о з д а н и м и під к е р у в а н н я м тих же т а к т о в и х імпульсів Т по регістрах ко­
манд КРК п р о с у в а ю т ь с я і к о м а н д и . К о м а н д а з в и х о д у відповідного регістра н а л а ш т о в у є
комбінаційні схеми ц ь о г о я р у с а на в и к о н а н н я необхідної операції. Для ярусів к о н в е є р а в
цьому в и п а д к у м о ж н а з а п и с а т и : А. = Ф^А., К.), де К. - в м і с т и м е регістра К Р К і-го яруса
+1

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


вхідними д а н и м и X м о ж н а з а п и с а т и в и р а з о м
У = ф
т ( к
т -Ф (к ,Ф (...,Ф(к,х)...))).
т т т
258

7.13. Алгоритмічні операційні пристрої

7.13.1. Пристрої додавання і віднімання двійкових чисел


з фіксованою комою
П р и с т р і й для д о д а в а н н я д в і й к о в и х чисел н а з и в а є т ь с я с у м а т о р о м . Суматор вико­
р и с т о в у є т ь с я в к о м п ' ю т е р і як с к л а д о в а ч а с т и н а А Л П , а т а к о ж як елемент інших вузлів
комп'ютера. К о р о т к о р о з г л я н е м о о с н о в н і п и т а н н я п о б у д о в и суматора. На рис. 7.18 пред­
ставлена схема о д н о т а к т о в о г о а л г о р и т м і ч н о г о о п е р а ц і й н о г о п р и с т р о ю (АОП) додаван­
ня і в і д н і м а н н я чисел з ф і к с о в а н о ю к о м о ю з послідовною о б р о б к о ю двійкових чисел.

У1 Результат

31>г1

ЗРгЗ

Пристрій Сі- І
керування

С і

Рис. 7.18. Послідовний АОП додавання і віднімання чисел з фіксованою комою

Тут вхідні о п е р а н д и 1 та 2 з а п и с у ю т ь с я с и г н а л а м и У1 та У2 з п р и с т р о ю керування до


з с у в н и х регістрів З Р г І та ЗРг2, виходи м о л о д ш и х р о з р я д і в я к и х з'єднані з входами одно-
р о з р я д н о г о с у м а т о р а С М , вихід с у м и 8. я к о г о з ' є д н а н и й з входом старшого р о з р я д у зсув­
ного регістра ЗРгЗ. Вихід п е р е н о с у с у м а т о р а з ' є д н а н и й з входом тригера Тг, я к и й збері­
гає з н а ч е н н я п е р е н о с у С в і д п о в і д н о г о р о з р я д у п р о т я г о м одного т а к т у для подачі його на
вхід о д н о р о з р я д н о г о суматора. Перед п о ч а т к о м р о б о т и вміст тригера Тг встановлюється
в нуль. В к о ж н о м у такті с и г н а л о м з с у в у з п р и с т р о ю к е р у в а н н я вміст з с у в н и х регістрів
з с у в а є т ь с я на один р о з р я д в п р а в о , а в т р и г е р з а п и с у є т ь с я з н а ч е н н я переносу з чергового
р о з р я д у с у м и . О д н о р о з р я д н и й с у м а т о р п р а ц ю є в і д п о в і д н о до таблиці істинності з розді­
лу 4 (табл. 4.5). Р о з р я д с у м и з в и х о д у о д н о р о з р я д н о г о с у м а т о р а записується до зсувного
регістра ЗРгЗ. Д л я д о д а в а н н я д в о х п - р о з р я д н и х чисел в п р и в е д е н о м у пристрої необхідно
п тактів. Після ц ь о г о на виході п р и с т р о ю к е р у в а н н я з ' я в и т ь с я сигнал з а в е р ш е н н я робо­
ти, а в з с у в н о м у регістрі ЗРгЗ буде з н а х о д и т и с ь результат операції.
П е р е в а г о ю т а к о г о п р и с т р о ю є п р о с т о т а та малі з а т р а т и о б л а д н а н н я на реалізацію
суматора.
З н а ч н о частіше в к о м п ' ю т е р а х в и к о р и с т о в у ю т ь с я о д н о т а к т о в і алгоритмічні ОП для
д о д а в а н н я та в і д н і м а н н я д в і й к о в и х чисел (рис. 7.19), в я к о м у всі р о з р я д и операндів по­
с т у п а ю т ь на п а р а л е л ь н и й с у м а т о р з вхідних регістрів РгІ та Рг2 одночасно. Тим самим,
за р а х у н о к п а р а л е л ь н о ї о б р о б к и д о с я г а є т ь с я з н а ч н о в и щ а ш в и д к о д і я п о р і в н я н о з пороз-
рядним додаванням операндів.
259

РгІ Рг2

РгЗ

Рис. 7.19. Паралельний АОП для додавання та віднімання двійкових чисел

О д н о т а к т о в и й с у м а т о р будується ш л я х о м а п а р а т н о г о в і д о б р а ж е н н я г р а ф а а л г о р и т ­
м у д о д а в а н н я двійкових чисел, т о б т о ш л я х о м з а м і н и ф у н к ц і о н а л ь н и х операторів а л г о ­
р и т м у в і д п о в і д н и м и к о м б і н а ц і й н и м и схемами.
Н а й п р о с т і ш и м з о д н о т а к т о в и х суматорів є о д н о т а к т о в и й с у м а т о р , я к и й а п а р а т н о ві­
д о б р а ж а є г р а ф а л г о р и т м у д о д а в а н н я д в і й к о в и х чисел з п о с л і д о в н и м п е р е н о с о м і відпо­
відно н а з и в а є т ь с я с у м а т о р о м з п о с л і д о в н и м п е р е н о с о м . С х е м а ц ь о г о суматора п о в т о р ю є
граф відповідного а л г о р и т м у п - р о з р я д н о г о д о д а в а н н я д в і й к о в и х чисел з п о с л і д о в н и м
переносом (рис. 4.5). Недоліком с у м а т о р а з п о с л і д о в н и м п е р е н о с о м є значна з а т р и м к а
при ф о р м у в а н н і переносу, о с к і л ь к и д л я о т р и м а н н я о с т а н н ь о г о р о з р я д у суми п е р е н о с
повинен бути с ф о р м о в а н и м всіма п о п е р е д н і м и о д н о р о з р я д н и м и с у м а т о р а м и .
Для з м е н ш е н н я кількості о п е р а ц і й , які з н а х о д я т ь с я на к р и т и ч н о м у шляху, с т в о р е н о
ряд алгоритмів д о д а в а н н я , в я к и х с к о р о ч е н о кількість п о с л і д о в н и х о п е р а ц і й при ф о р м у ­
ванні переносу та відповідних с т р у к т у р суматорів. Це, з о к р е м а , с у м а т о р и з н а с к р і з н и м ,
частково г р у п о в и м і г р у п о в и м п е р е н о с а м и , в я к и х з д і й с н ю є т ь с я п а р а л е л ь н е ф о р м у в а н ­
ня переносів для всіх р о з р я д і в , а б о для груп р о з р я д і в . Д о с и т ь п р о с т о ю та е ф е к т и в н о ю є
реалізація в суматорі а л г о р и т м у за м е т о д о м в и б о р у переносу.
О с к і л ь к и п и т а н н ю п о б у д о в и е ф е к т и в н и х а л г о р и т м і в д о д а в а н н я д в і й к о в и х чисел
приділено д о с т а т н ь о уваги в літературі, к о р о т к о р о з г л я н е м о о с т а н н і й з н а з в а н и х в и щ е
підходів, т о б т о реалізацію а л г о р и т м у за м е т о д о м в и б о р у переносу. Р о з і р в а в ш и в довіль­
ному місці тракт п р о х о д ж е н н я п е р е н о с у та с ф о р м у в а в ш и два т р а к т и його п о д а л ь ш о г о
п р о х о д ж е н н я із з н а ч е н н я м вхідного п е р е н о с у 0 та 1 відповідно, з п о с л і д у ю ч и м в и б о р о м
результату за допомогою м у л ь т и п л е к с о р а за з н а ч е н н я м р е а л ь н о г о переносу в місці р о з ­
риву, о т р и м а є м о п о к а з а н у на рис. 7.20 схему суматора.

АО...АЗ В0...ВЗ

і СМ2
смз

СМ1 СО

34...37 БО...ЗЗ

Рис. 7.20. Однотактовий суматор двійкових чисел за методом вибору переносу


260

Тим с а м и м доволі п р о с т о вдалося в два р а з и с к о р о т и т и к р и т и ч н и й ш л я х ф о р м у в а н н я


переносу. Цей же підхід м о ж н а в и к о р и с т а т и п о в т о р н о і для п р и с к о р е н н я р о б о т и п/2-роз-
р я д н и х суматорів, як це п о к а з а н о на рис. 7.21 і т. д.

Рис. 7.21. Однотактовий суматор двійкових чисел за методом вибору переносу


з чотирикратним прискоренням

Ч а с т о в к о м п ' ю т е р а х в и к о р и с т о в у є т ь с я п р и с т р і й для н а к о п и ч е н н я двійкових чисел,


т о б т о д л я п о с л і д о в н о г о багатомісного д о д а в а н н я N чисел (рис. 7.22). В т а к о м у операцій­
н о м у п р и с т р о ї є в х і д н и й РгІ та в и х і д н и й Рг2 регістри, а т а к о ж с у м а т о р , п р и ч о м у один з
входів с у м а т о р а з ' є д н а н и й з в и х о д о м в и х і д н о г о Рг2 регістра. Для з а б е з п е ч е н н я коректної
р о б о т и п р и с т р о ю р о з р я д н і с т ь с у м а т о р а п о в и н н а б у т и р о з ш и р е н о ю в с т о р о н у старших
р о з р я д і в на ]1о§ 1М[ бітів.
2

п-1 І 0
Ні

і- 1
см
п-1+ІодМ п-1 , 0

Рг2

Рис. 7.22. АОП накопичення двійкових чисел

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


сум з в и х о д у суматора, а й переносів (так звані с у м а т о р и з з а п а м ' я т о в у в а н н я м перено­
сів). В ц ь о м у в и п а д к у т а к т р о б о т и п р и с т р о ю в р е ж и м і н а к о п и ч е н н я чисел буде визна­
чатися з а т р и м к о ю л и ш е о д н о р о з р я д н о г о суматора.
В а ж л и в и м п и т а н н я м при побудові п р и с т р о ї в д о д а в а н н я є фіксація переповнення.
Для ц ь о г о а н а л і з у є т ь с я п е р е н о с із о с т а н н ь о г о р о з р я д у та з н а к и операндів. Для спро­
щ е н н я аналізу н а я в н о с т і п е р е п о в н е н н я в и к о р и с т о в у ю т ь с я так звані модифіковані коди
з д в о м а з н а к о в и м и р о з р я д а м и (0-00, 1-11). Н е з б і ж н і с т ь ц и х р о з р я д і в г о в о р и т ь п р о на­
явність переповнення.
П о т р і б н о з а у в а ж и т и , щ о з а з в и ч а й д л я в и к о н а н н я в і д н і м а н н я в и к о р и с т о в у є т ь с я до­
д а в а н н я , перед я к и м в і д ' є м н и к п е р е т в о р ю є т ь с я в о б е р н е н и й або д о п о в н я л ь н и й код.
П р я м е в і д н і м а н н я в и к о р и с т о в у є т ь с я рідко. Я к щ о ж т а к а п о т р е б а є, то взамін суматора
267

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


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

7.13.2. Пристрої множення двійкових чисел з фіксованою комою


Послідовне (багатотактове) м н о ж е н н я базується н а п о с л і д о в н о м у у т в о р е н н і с у м и
часткових добутків, в и к о р и с т о в у ю ч и один а б о декілька суматорів, і р е а л і з у є т ь с я ш л я ­
хом послідовного в и к о н а н н я о п е р а ц і й д о д а в а н н я .
Як ми вже бачили в розділі 4, п р о ц е с м н о ж е н н я м о ж е п о ч и н а т и с я з м о л о д ш и х і с т а р ­
ших р о з р я д і в м н о ж н и к а . П р и ц ь о м у п о в н у с у м у ч а с т к о в и х д о б у т к і в (тобто д о б у т о к )
можна о т р и м а т и д в о м а ш л я х а м и :
• з с у в о м м н о ж е н о г о на п о т р і б н у кількість р о з р я д і в і д о д а в а н н я м о т р и м а н о г о ч е р ­
гового часткового д о б у т к у д о р а н і ш е н а к о п и ч е н о ї с у м и ;
• з с у в о м суми р а н і ш е о т р и м а н и х ч а с т к о в и х д о б у т к і в на к о ж н о м у кроці на один
р о з р я д і н а с т у п н и м д о д а в а н н я м н е р у х о м о г о м н о ж е н о г о а б о 0 до з с у н у т о ї суми.
Таким ч и н о м , існує 4 м е т о д и м н о ж е н н я д в і й к о в и х чисел, на основі я к и х м о ж н а побу­
дувати 4 а л г о р и т м и і т е р а ц і й н о г о в и к о н а н н я цієї операції та 4 б а з о в и х с т р у к т у р и багато-
тактових А О П м н о ж е н н я д в і й к о в и х чисел:
• м н о ж е н н я п о ч и н а ю ч и з м о л о д ш и х р о з р я д і в м н о ж н и к а зі з с у в о м суми ч а с т к о в и х
добутків в п р а в о ;
• м н о ж е н н я п о ч и н а ю ч и з молодших розрядів м н о ж н и к а зі з с у в о м м н о ж е н о г о вліво;
• м н о ж е н н я п о ч и н а ю ч и з с т а р ш и х р о з р я д і в м н о ж н и к а зі з с у в о м с у м и ч а с т к о в и х
добутків вліво;
• м н о ж е н н я п о ч и н а ю ч и з старших розрядів м н о ж н и к а зі з с у в о м м н о ж е н о г о в п р а в о .
Розглянемо їх детальніше.

7.13.2.1. Багатотактовий пристрій множення двійкових чисел з молодших розрядів


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

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

_(г +х-г )
і (І)

дег =0;
о і = 0,и-1; 2 =2 = ХХ.
п

Тут в ж и т о наступні п о з н а ч е н н я : X, У, 7. - м н о ж е н е , м н о ж н и к і д о б у т о к в і д п о в і д н о , 2.
- сума часткових добутків на і-му етапі, У(і) - і-й р о з р я д м н о ж н и к а , п - кількість р о з ­
рядів операндів без в р а х у в а н н я з н а к о в о г о р о з р я д у .
В к о ж н о м у ц и к л і м н о ж е н е додається до с у м и ч а с т к о в и х д о б у т к і в , я к щ о У. = 0, і не
додається, я к щ о У. = 0, після чого сума ч а с т к о в и х д о б у т к і в м н о ж и т ь с я на 2 , т о б т о зсу­ і

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


буток, тобто Т = 2 = ХУп

Алгоритм м о ж н а п р е д с т а в и т и блок-схемою, п о к а з а н о ю на рис. 7.23.


262

так

С Кінець

Рис. 7.23. Блок-схема алгоритму множення першим методом

Приклад:
Необхідно п о м н о ж и т и два числа (без з н а к о в о г о р о з р я д у ) :
X = 0101 0101; У = 01101011;
Хід о п е р а ц і й п р о і л ю с т р о в а н о в табл. 7.3:
Таблиця 7.3
і г\ У(У(0) Х.У(І) 2і+ Х.У(і) 2-,
0 0000 0000 0000 0000 ОНО 1011 0101 0101 0101 0101 0000 0000 0010 1010 1000 0000
1 0010 1010 1000 0000 ОНО 1011 0101 0101 0111 1111 1000 0000 ООП 1111 1100 0000
2 ООП 1111 1100 0000 ОНО 1011 0000 0000 ООП 1111 1100 0000 0001 1111 1110 0000
3 0001 1111 1110 0000 ОНО 1011 0101 0101 0111 0100 11100000 ООП 1010 0111 0000
4 ООП 1010 0111 0000 ОНО 1011 0000 0000 ООП 10100111 0000 0001 1101 ООП 1000
5 0001 1101 ООП 1000 ОНО 1011 0101 0101 0111 0010 0011 1000 ООП 1001 0001 1100
6 ООП 1001 0001 1100 ОНО 1011 0101 0101 1000 1110 0001 1100 0100 0111 0000 1110
7 0100 0111 0000 1110 ОНО 1011 0000 0000 0100 0111 0000 1110 0010 0011 1000 0111

Т а к и м ч и н о м 0101 0101 . 01101011 = 0010 ООП 1000 0111.


Б а з о в а с т р у к т у р а б а г а т о т а к т о в о г о А О П м н о ж е н н я д в і й к о в и х чисел з а описаним ме-
тодом наведена на р и с . 7.24.
•» зсув
СР Рг м н о ж н и к а МР

смчд •*—
і —•» зсув

Рг м н о ж е н о г о

Рис. 7.24. Базова структура багатотактового АОП множення першим методом


Тут С М Ч Д - с у м а т о р ч а с т к о в и х д о б у т к і в . М н о ж н и к зберігається в регістрі множни­
ка, а м н о ж е н е - в регістрі м н о ж е н о г о . О б и д в а ці регістри є п - р о з р я д н и м и . Суматор част-
263

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


ним з в ' я з к о м , як це п о к а з а н о на рис. 7.22. В к о ж н о м у такті вміст ц ь о г о регістра та регі­
стра м н о ж н и к а з с у в а ю т ь с я на один р о з р я д в п р а в о в с т о р о н у м о л о д ш и х р о з р я д і в . Р о з р я д
в к р а й н ь о м у п р а в о м у тригері регістра м н о ж н и к а в и п а д а є , а на його місце п о м і щ а є т ь с я
наступний р о з р я д м н о ж н и к а , я к и й керує о п е р а ц і є ю С М Ч Д , т о б т о вказує, чи є в д а н о м у
такті додавання, чи його немає. П р и зсуві м о л о д ш и й р о з р я д С М Ч Д м о ж е в и п а д а т и , а
може і зберігатися, з а л е ж н о від того, якої р о з р я д н о с т і потрібен результат - п - р о з р я д н и й ,
чи 2 п - р о з р я д н и й . З а в д я к и тому, що в даній с т р у к т у р і регістри м н о ж е н о г о і м н о ж н и к а є
п - р о з р я д н и м и , а не 2 п - р о з р я д н и м и , як це є в б а з о в и х с т р у к т у р а х А О П м н о ж е н н я і н ш и ­
ми методами, п е р ш и й метод м н о ж е н н я в и к о р и с т о в у є т ь с я найчастіше.

7.13.2.2. Багатотактовий пристрій множення двійкових чисел з молодших розрядів


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

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


ними і т е р а ц і й н и м и в и р а з а м и :

Ь с , = 2 1 ,

деХ =Х;
0 2 =0;
0 / = 0,я-1; 2 =2 = ХУ.
П

Тут в ж и т о наступні п о з н а ч е н н я : X, У, Ъ - м ц о ж е н е , м н о ж н и к і д о б у т о к відповідно,


Ъ - сума часткових д о б у т к і в на і-му етапі, У(і) - і-й р о з р я д м н о ж н и к а , п - кількість р о з ­
рядів операндів без в р а х у в а н н я з н а к о в о г о р о з р я д у .
Алгоритм м о ж н а п р е д с т а в и т и блок-схемою, п о к а з а н о ю на рис. 7.25.

і <с У І

г =глху
м

х -гх
м І

Рис. 7.25. Блок-схема алгоритму множення другим методом

Приклад:
Необхідно п о м н о ж и т и два числа (без з н а к о в о г о р о з р я д у ) :
Х=0101 0101; ¥ = 0 1 1 0 1 0 1 1 .
Хід операцій п р о і л ю с т р о в а н о в табл. 7.4.
264

Таблиця 7.4
і 7Л У (У(і)) X гі+і= гі+х.у(і)
0 0000 0000 0000 0000 0110 1011 0000 0000 0101 0101 0000 0000 0101 0101
1 0000 0000 0101 0101 0110 1011 0000 0000 1010 1010 0000 0000 1111 1111
2 0000 0000 1111 1111 01101011 0000 0001 0101 0100 0000 0000 1111 1111
3 0000 0000 1111 1111 0110 1011 0000 0010 1010 1000 0000 0011 1010 0111
4 0000 0011 1010 0111 о н о 1011 0000 0101 0101 0000 0000 0011 10100111
5 0000 0011 1010 0111 0110 1011 0000 1010 1010 0000 0000 1110 0100 0111
6 0000 1110 0100 0111 0110 1011 0001 0101 0100 0000 00100011 10000111
7 0010 0011 1000 0111 0110 1011 0010 1010 1000 0000 0010 0011 1000 0111

Т а к и м ч и н о м 0101 0101 • 01101011 = 0010 ООП 1000 0111.


Б а з о в а с т р у к т у р а б а г а т о т а к т о в о г о А О П м н о ж е н н я д в і й к о в и х чисел з а о п и с а н и м ме­
т о д о м наведена на рис. 7.26.
•• зсув
Рг множника М Р ;

СМЧД

Рг множеного

зсув -«- множене перед


початком виконання операції

Рис. 7.26. Базова структура багатотактового АОП множення другим методом

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

7.73.2.3. Багатотактовий пристрій множення двійкових чисел з старших розрядів


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

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


ними ітераційними виразами:

деХ,=Х; г =0;
0 і=0,и-1; 2=2 = ХУ.
265

Тут в ж и т о н а с т у п н і п о з н а ч е н н я : X, У, Ъ - м н о ж е н е , м н о ж н и к і д о б у т о к в і д п о в і д н о ,
7л - сума ч а с т к о в и х д о б у т к і в на і-му етапі, У ( п - і - І ) - ( п - і - І ) - й р о з р я д м н о ж н и к а , п - кіль­
кість р о з р я д і в о п е р а н д і в без в р а х у в а н н я з н а к о в о г о р о з р я д у .
А л г о р и т м м о ж н а п р е д с т а в и т и блок-схемою, п о к а з а н о ю на рис. 7.27.

1
/=;+і

^—<^ і =

так

С
Кінець

Рис. 7.27. Блок-схема алгоритму множення третім методом


Приклад:
Н е о б х і д н о п о м н о ж и т и два числа (без з н а к о в о г о р о з р я д у ) :
Х=01010101; ¥=01101011.
Хід о п е р а ц і й п р о і л ю с т р о в а н о в табл. 7.5.
Таблиця 7.5
і г\ У (У(п-Ї-І)) Хі+1 Ті+\=Ті+ Хі+1.У(п-і-1)
0 0000 0000 0000 0000 0110 1011 0010 1010 1000 0000 0000 0000 0000 0000
1 0000 0000 0000 0000 0110 1011 0001 0101 0100 0000 0001 0101 0100 0000
2 0001 0101 0100 0000 0110 1011 0000 1010 1010 0000 0001 1111 1110 0000
3 0001 1111 1110 0000 0110 1011 0000 0101 0101 0000 0001 1111 1110 0000
4 0001 1111 11100000 0110 1011 0000 0010 1010 1000 0010 0010 1000 1000
5 0010 0010 1000 1000 0110 1011 0000 0001 0101 0100 0010 0010 1000 1000
6 0010 0010 1000 1000 01101011 0000 0000 1010 1010 0010 0011 ООП 0010
7 0010 0011 ООП 0010 01101011 0000 0000 0101 0101 0010 0011 1000 0111
Таким ч и н о м 0101 0101 .01101011 = 0010 0011 1000 0111.
Б а з о в а с т р у к т у р а б а г а т о т а к т о в о г о А О П м н о ж е н н я д в і й к о в и х чисел за о п и с а н и м ме-
тодом наведена на рис. 7.28.
* зсув

Рг множника

Р г множеного

Рис. 7.28. Базова структура багатотактового АОП множення третім методом


266

Тут С М Ч Д - с у м а т о р ч а с т к о в и х д о б у т к і в . М н о ж н и к зберігається в регістрі множни­


ка, а м н о ж е н е - в регістрі м н о ж е н о г о . О б и д в а ці регістри є п - р о з р я д н и м и . Суматор част­
к о в и х д о б у т к і в є н а к о п и ч у в а л ь н и м с у м а т о р о м , т о б т о на його виході є регістр з оберне­
н и м з в ' я з к о м як це п о к а з а н о на рис. 7.22, я к и й є 2 п - р о з р я д н и м . В к о ж н о м у такті вміст
регістрів м н о ж н и к а та м н о ж е н о г о з с у в а є т ь с я на один р о з р я д вліво в сторону старших
р о з р я д і в . Р о з р я д в к р а й н ь о м у л і в о м у тригері регістра м н о ж н и к а випадає, а на його місце
п о м і щ а є т ь с я н а с т у п н и й р о з р я д м н о ж н и к а , я к и й керує о п е р а ц і є ю С М Ч Д , тобто вказує
чи є в д а н о м у такті д о д а в а н н я , чи його немає. В п о р і в н я н н і з б а з о в о ю с т р у к т у р о ю АОП
м н о ж е н н я п е р ш и м м е т о д о м т у т С М Ч Д о б о в ' я з к о в о м а є бути 2 п - р о з р я д н и м .

7.13.2.4. Багатотактовий пристрій множення двійкових чисел з старших розрядів


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

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


ним ітераційним виразом:

2 М - 2 • 2 + X • У(„_,_,),
І

дег =0;
о / = 0,/і-1; г . ^ ^ І Т .
Тут в ж и т о н а с т у п н і п о з н а ч е н н я : X, У, Ъ - м н о ж е н е , м н о ж н и к і д о б у т о к відповідно,
7. - сума ч а с т к о в и х д о б у т к і в на і-му етапі, У . + 1 ) - ( п - і - І ) - й р о з р я д м н о ж н и к а , п - кіль­
кість р о з р я д і в о п е р а н д і в без в р а х у в а н н я з н а к о в о г о р о з р я д у .
А л г о р и т м м о ж н а п р е д с т а в и т и блок-схемою, п о к а з а н о ю на рис. 7.29.

та*

2 =22.
М

і=і+1

С
Рис. 7.29. Блок-схема алгоритму множення
Кінець

четвертим методом

Приклад:
М н о ж и м о два числа (без з н а к о в о г о р о з р я д у ) :
Х = 0 1 0 1 0 1 0 1 ; У=01101011.
Хід о п е р а ц і й п р о і л ю с т р о в а н о в табл. 7.6.
267

Таблиця 7.6
і гі У(У(п-і-1)) 2.гі гі+і=2.гі+ ХІ+І-У(П-І-І)
0 0000 0000 0000 0000 0110 1011 0000 0000 0000 0000 0000 0000 0000 0000
1 0000 0000 0000 0000 0110 1011 0000 0000 0000 0000 0000 0000 0101 0101
2 0000 0000 0101 0101 0110 1011 0000 0000 1010 1010 0000 0000 1111 1111
3 0000 0000 1111 1111 0110 1011 0000 0001 1111 1110 0000 0001 1111 1110
4 0000 0001 1111 1110 0110 1011 0000 0011 1111 1100 0000 0100 0101 0001
5 0000 0100 0101 0001 0110 1011 0000 1000 1010 0010 0000 1000 1010 0010
6 0000 1000 1010 0010 0110 1011 0001 0001 0100 0100 0001 0001 1001 1001
7 0001 0001 1001 1001 0110 1011 00100011 0011 0010 0010 0011 1000 0111

Таким ч и н о м 0101 0101 • 01101011 = 0010 0011 1000 0111.


Базова с т р у к т у р а б а г а т о т а к т о в о г о А О П м н о ж е н н я д в і й к о в и х чисел з а о п и с а н и м м е ­
тодом наведена на рис. 7.30.
-4 ЗСуВ

СР Рг множника

СМЧД
і1
Рг множеного

множене перед ^ зсув


початком виконання операції
Рис. 7.30. Базова структура багатотактового АОП множення четвертим методом

Тут С М Ч Д - с у м а т о р ч а с т к о в и х д о б у т к і в . М н о ж н и к з б е р і г а є т ь с я в регістрі м н о ж н и ­
ка, а м н о ж е н е - в регістрі м н о ж е н о г о . П е р ш и й з ц и х р е г і с т р і в є п - р о з р я д н и м , а д р у г и й
- 2 п - р о з р я д н и м . С у м а т о р ч а с т к о в и х д о б у т к і в є н а к о п и ч у в а л ь н и м с у м а т о р о м , т о б т о на
його виході є р е г і с т р з о б е р н е н и м з в ' я з к о м як це п о к а з а н о на р и с . 7.22, я к и й т а к о ж є
2 п - р о з р я д н и м . П е р е д п о ч а т к о м в и к о н а н н я о п е р а ц і ї м н о ж е н е з н а х о д и т ь с я в лівій час­
тині регістра м н о ж е н о г о . В к о ж н о м у такті вміст регістра м н о ж е н о г о та вміст С М Ч Д зсу­
ваються на один р о з р я д в п р а в о в с т о р о н у м о л о д ш и х р о з р я д і в . Р о з р я д в к р а й н ь о м у л і в о ­
му тригері регістра м н о ж н и к а в и п а д а є , а на його місце п о м і щ а є т ь с я н а с т у п н и й р о з р я д
м н о ж н и к а , я к и й керує о п е р а ц і є ю С М Ч Д , т о б т о в к а з у є чи є в д а н о м у такті д о д а в а н н я , чи
його немає. В п о р і в н я н н і з б а з о в о ю с т р у к т у р о ю А О П м н о ж е н н я п е р ш и м м е т о д о м тут,
як в базовій с т р у к т у р і А О П м н о ж е н н я д р у г и м м е т о д о м , регістр м н о ж е н о г о та С М Ч Д
о б о в ' я з к о в о м а ю т ь бути 2 п - р о з р я д н и м и .
В усіх ч о т и р ь о х р о з г л я н у т и х с т р у к т у р а х А О П м н о ж е н н я д в і й к о в и х чисел час в и к о ­
н а н н я операції І = п і д е І - з а т р и м к а С М Ч Д .
ш с м

7.13.2.5. Багатотактовий пристрій прискореного множення

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


м н о ж н и к а . Це м о ж е бути о д н о ч а с н и й аналіз двох, т р ь о х і більшої кількості р о з р я д і в . Д л я
п о я с н е н н я суті методу на рис. 7.31 п о к а з а н а схема б а г а т о т а к т о в о г о п р и с т р о ю м н о ж е н н я
268

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


д в о х р о з р я д і в м н о ж н и к а і в к а з у є С М Ч Д тип в и к о н у в а н о ї операції: д о д а в а н н я відсутнє,
додається з н а ч е н н я м н о ж е н о г о , додається п о д в о є н е з н а ч е н н я м н о ж е н о г о , додається по­
т р о є н е з н а ч е н н я м н о ж е н о г о . З с у в в регістрах відбувається одночасно на два р о з р я д и .
зсув

0 1 Рг множника п
00 - додавання відсутнє,

1і СА 01 - СМЧД := СМЧД + X

і 10 - СМЧД :=СМЧД+ 2Х
смчд 11 - СМЧД :=СМЧД+ ЗХ
т
0 Рг множеного п

зсув

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


двох розрядів множника

П о д і б н и м ч и н о м м о ж е б у т и р е а л і з о в а н и й п р и с т р і й м н о ж е н н я з о д н о ч а с н и м аналі­
з о м д в о х р о з р я д і в м н о ж н и к а з з а с т о с у в а н н я м всіх ч о т и р ь о х в и щ е р о з г л я н у т и х методів
м н о ж е н н я . П р и м н о ж е н н і чисел, п р е д с т а в л е н и х в д о п о в н я л ь н о м у коді, доцільно вико­
р и с т о в у в а т и п р и с т р і й , я к и й р е а л і з у є а л г о р и т м Бута, р о з г л я н у т и й в розділі 4.
Ч а с т о з а с т о с о в у ю т ь с я а с и н х р о н н і п р и с т р о ї м н о ж е н н я з о д н о ч а с н и м аналізом всіх
р о з р я д і в м н о ж н и к а . В т а к и х п р и с т р о я х кількість тактів в и з н а ч а є т ь с я кількістю одиниць
в множнику.
Приклад:
Х = 101001110001
¥ = 110000111110.
На п о з и ц і я х нулів у м н о ж н и к у У д о д а в а н н я не в и к о н у є т ь с я , л и ш е зсув на відповідну
кількість р о з р я д і в .
М н о ж н и к У м о ж н а п р е д с т а в и т и в вигляді У = 1100010000(-1)0. Тоді взамін 7 додавань
необхідно в и к о н а т и 3 д о д а в а н н я і одне в і д н і м а н н я . О с о б л и в о е ф е к т и в н и й цей метод при
виконанні множення на константи.

7.73.2.6. Однотактові пристрої множення двійкових чисел з фіксованою комою

Як в ж е було п о к а з а н о , побудова о д н о т а к т о в и х о п е р а ц і й н и х п р и с т р о ї в передбачає


а п а р а т н е в і д о б р а ж е н н я п р о с т о р о в о г о г р а ф а а л г о р и т м у в и к о н а н н я операції комбінацій­
н и м и схемами, які в и к о н у ю т ь ф у н к ц і о н а л ь н і о п е р а т о р и а л г о р и т м у і з'єднані між собою
в і д п о в і д н о д о г р а ф а алгоритму. Тому с т р у к т у р а о д н о т а к т о в о г о п р и с т р о ю множення
д в і й к о в и х чисел з ф і к с о в а н о ю к о м о ю п о в т о р и т ь відповідну с т р у к т у р у г р а ф а алгоритму,
наведеного на р и с . 4.7, як це п о к а з а н о на р и с . 7.32.
269

Рис. 7.32. Структура однотактового пристрою множення


двійкових чисел з фіксованою комою

Тут вхідні дані X та Y п о с т у п а ю т ь в регістри РгХ та PrY, а з н и х на п р и с т р о ї логічного


м н о ж е н н я A N D , н а я к и х ф о р м у ю т ь с я логічні д о б у т к и м н о ж е н о г о X н а р о з р я д и м н о ж ­
ника Y. Ці логічні д о б у т к и з з с у в о м на відповідну кількіть р о з р я д і в п о с т у п а ю т ь на входи
комбінаційної схеми багатомісного д о д а в а н н я ч а с т к о в и х д о б у т к і в Б Д Ч Д , результат м н о ­
ження з якої п о с т у п а є в регістр P r Z , а з н ь о г о на вихід п р и с т р о ю .
Комбінаційна схема багатомісного д о д а в а н н я ч а с т к о в и х д о б у т к і в Б Д Ч Д реалізує ал­
горитми, д е т а л ь н о р о з г л я н у т і в п. 4.4.4.2, де к о ж н о м у о п е р а т о р у д в о м і с н о г о о д н о р о з р я д -
ного двійкового д о д а в а н н я м а є б у т и п о с т а в л е н и й у відповідність о д н о р о з р я д н и й сума­
тор двійкових чисел, я к и й реалізує логічні в и р а з и в і д п о в і д н о до табл. 4.5.

7.13.2.7. Конвеєрні пристрої множення двійкових чисел з фіксованою комою

П р и побудові к о н в е є р н о г о о п е р а ц і й н о г о п р и с т р о ю м н о ж е н н я д в і й к о в и х чисел з
фіксованою комою к о ж н о м у ф у н к ц і о н а л ь н о м у о п е р а т о р у а л г о р и т м у с т а в и т ь с я у від­
повідність к о м б і н а ц і й н а схема, я к а його в и к о н у є , і, крім того, комбінаційні схеми, які
реалізують ф у н к ц і о н а л ь н і о п е р а т о р и ярусів п о т о к о в о г о г р а ф а алгоритму, р о з д і л я ю т ь с я
к о н в е є р н и м и регістрами. А л г о р и т м м н о ж е н н я в и к о н у є т ь с я над в х і д н и м и д а н и м и п р и 'їх
однократному п р о х о д ж е н н і через к о н в е є р н и й о п е р а ц і й н и й п р и с т р і й .
Я к щ о в и б р а т и д л я реалізації г р а ф а л г о р и т м у п о с л і д о в н о г о п о п а р н о г о д о д а в а н н я
часткових добутків, о т р и м а н и х п о ч и н а ю ч и з а н а л і з у м о л о д ш и х р о з р я д і в м н о ж н и к а ,
який п р е д с т а в л е н и й на рис. 4.8, то с т р у к т у р а і-го я р у с а к о н в е є р н о г о о п е р а ц і й н о г о п р и ­
строю м н о ж е н н я д в і й к о в и х чисел з ф і к с о в а н о ю к о м о ю буде м а т и в и г л я д , п о к а з а н и й
рис. 7.33.
270

т і
і і і
1- й ярус
Ргг
1* і* і у

2- Й ярус

3- й ярус
І* I х
1^

а) Ь)

Рис. 7.33. Структура і-го яруса (а) та конвеєрного операційного пристрою (Ь)
множення двійкових чисел з фіксованою комою

Послідовно з'єднавши п таких ярусів, де п - розрядність даних, як показано на рис. 7.33Ь,


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

7.13.3 Пристрої ділення двійкових чисел з фіксованою комою

7.13.3.1. Багатотактові пристрої ділення двійкових чисел з фіксованою комою

Як це в ж е було п о к а з а н о в розділі 4, існує два о с н о в н и х варіанти в и к о н а н н я операції


ділення: з з с у в о м з а л и ш к і в вліво та з з с у в о м дільника. Для реалізації А О П п е р ш и й варі­
ант в и г і д н і ш и й , так як в и м а г а є в и к о р и с т а н н я п - р о з р я д н о г о віднімача, тоді як другий ва­
ріант в и м а г а є в и к о р и с т а н н я 2 п - р о з р я д н о г о віднімача. П р и ц ь о м у п е р ш и й варіант може
бути в и к о н а н и й д в о м а с п о с о б а м и : з в і д н о в л е н н я м і без відновлення залишку. Схема 6а-
гатотактового п р и с т р о ю д і л е н н я за а л г о р и т м о м з в і д н о в л е н н я м залишку, я к и й працює
відповідно до блок-схеми, наведеної на рис. 4.15, п о к а з а н а на рис. 7.34.
X

МЛІ
Зсув

Рі н, Рг О,
т
ї ї

Рис. 7.34. Структура багатотактового АОП ділення двійкових чисел з відновленням залишку
271

Перед п о ч а т к о м в и к о н а н н я операції з н а ч е н н я д і л ь н и к а У та діленого X (через м у л ь ­


типлексор М П 1 ) з а п и с у ю т ь с я відповідно до регістрів РгД. та РгУ. В к о ж н о м у такті п о ­
слідовно віднімається дільник від діленого і п р о в о д и т ь с я аналіз з н а ч е н н я п о т о ч н о г о
залишку. Я к щ о після чергового в і д н і м а н н я з а л и ш о к додатній, т о в і д п о в і д н и й р о з р я д
частки р і в н и й одиниці. Ч е р е з м у л ь т и п л е к с о р М П 2 п р о п у с к а є т ь с я з н а ч е н н я з в и х о д у від-
німача, т о б т о з а л и ш о к , після чого він з с у в а є т ь с я на один р о з р я д в л і в о і п р о ц е с п о в т о ­
рюється. П р и в і д ' є м н о м у з а л и ш к у р о з р я д ч а с т к и р і в н и й нулю. В ц ь о м у в и п а д к у в и к о ­
нується коригуюче з б і л ь ш е н н я д і л ь н и к а д о п о т о ч н о г о з а л и ш к у ( в і д н о в л е н н я з а л и ш к у ) ,
що здійснюється ш л я х о м п р о п у с к у ч е р е з м у л ь т и п л е к с о р МП з н а ч е н н я з регістра Р г К ,
після чого він з с у в а є т ь с я на один р о з р я д вліво і п р о ц е с п о в т о р ю є т ь с я . В к о ж н о м у такті
в и з н а ч а є т ь с я о д и н р о з р я д ч а с т к и , я к и й з а п и с у є т ь с я в с т а р ш и й р о з р я д р е г і с т р у РгС^.
на місце з с у н у т о г о р о з р я д у . П і с л я в и к о н а н н я п т а к т і в в р е г і с т р і Р г О . б у д е з н а х о д и т и с ь
п - р о з р я д н а частка від ділення діленого на дільник.
Досить подібною до описаної є схема б а г а т о т а к т о в о г о п р и с т р о ю д і л е н н я без віднов­
лення залишку, представлена на рис. 7.35.
Іх
3_
V
Зсув

Рг V

Рис. 7.35. Структура багатотактового АОП ділення двійкових чисел без відновлення залишку

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


чення дільника У та діленого X з а п и с у ю т ь с я в і д п о в і д н о до регістрів РгУ та РгК\. В к о ж ­
ному такті з а л е ж н о від з н а ч е н н я р о з р я д у ч а с т к и , о т р и м а н о г о на п о п е р е д н ь о м у такті,
через м у л ь т и п л е к с о р М П н а с у м а т о р С М п р о х о д и т ь п р я м и й а б о і н в е р с н и й код дільника,
і тим с а м и м д і л ь н и к додається або в і д н і м а є т ь с я від діленого. Я к щ о після чергової опе­
рації д о д а в а н н я або в і д н і м а н н я з а л и ш о к додатній, то в і д п о в і д н и й р о з р я д частки р і в н и й
одиниці, при в і д ' є м н о м у з а л и ш к у р о з р я д частки р і в н и й нулю. Після в и к о н а н н я операції
значення з виходу суматора з с у в а є т ь с я на один р о з р я д вліво і п р о ц е с п о в т о р ю є т ь с я . В
кожному такті в и з н а ч а є т ь с я один р о з р я д частки, я к и й з а п и с у є т ь с я в с т а р ш и й р о з р я д
регістру РгС}. на місце з с у н у т о г о розряду. Після в и к о н а н н я п тактів в регістра Рг(}. буде
знаходитись п - р о з р я д н а частка від д і л е н н я діленого на дільник.
В обох р о з г л я н у т и х п р и с т р о я х час в и к о н а н н я д і л е н н я д о р і в н ю є Тд = п (г. + і + і ) ,
мп с м рг

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


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

7.13.3.2. Однотактові та конвеєрні пристрої ділення двійкових чисел


з фіксованою комою

П о д і б н о до операції м н о ж е н н я , п о б у д о в а о д н о т а к т о в и х о п е р а ц і й н и х пристроїв ді­


л е н н я п е р е д б а ч а є п о в н і с т ю а п а р а т н е в і д о б р а ж е н н я п р о с т о р о в о г о графа алгоритму ви­
к о н а н н я операції к о м б і н а ц і й н и м и с х е м а м и , які в и к о н у ю т ь ф у н к ц і о н а л ь н і оператори
а л г о р и т м у і з ' є д н а н і м і ж с о б о ю в і д п о в і д н о до г р а ф а алгоритму. Тому с т р у к т у р а однотак-
т о в о г о п р и с т р о ю м н о ж е н н я д в і й к о в и х чисел з ф і к с о в а н о ю комою п о в т о р и т ь відповідну
с т р у к т у р у г р а ф а алгоритму, н а в е д е н о г о на рис. 4.16.
П р и побудові к о н в е є р н о г о о п е р а ц і й н о г о п р и с т р о ю д і л е н н я д в і й к о в и х чисел з фіксо­
в а н о ю к о м о ю к о ж н о м у ф у н к ц і о н а л ь н о м у о п е р а т о р у а л г о р и т м у с т а в и т ь с я у відповідність
к о м б і н а ц і й н а схема, я к а й о г о в и к о н у є , і, крім того, к о м б і н а ц і й н і схеми, які реалізують
ф у н к ц і о н а л ь н і о п е р а т о р и ярусів п о т о к о в о г о г р а ф а алгоритму, р о з д і л я ю т ь с я конвеєрни­
ми р е г і с т р а м и . А л г о р и т м д і л е н н я в и к о н у є т ь с я над в х і д н и м и д а н и м и при їх однократно­
м у п р о х о д ж е н н і через к о н в е є р н и й о п е р а ц і й н и й п р и с т р і й .
Я к щ о вибрати для реалізації г р а ф а л г о р и т м у ділення двійкових чисел з відновленням
залишку, я к и й представлений на рис. 4.16, то і-й ярус конвеєрного операційного пристрою
ділення двійкових чисел з фіксованою комою буде мати вигляд, показаний на рис. 7.36.
а У , си

Рг К, Рг

Віднімач
Я!
N

1-І ' Ом

Рис. 7.36. і-й ярус конвеєрного операційного пристрою ділення двійкових чисел
з фіксованою комою за алгоритмом з відновленням залишку

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


ня з а л и ш к у , то с т р у к т у р а і-го я р у с а к о н в е є р н о г о о п е р а ц і й н о г о п р и с т р о ю ділення двій­
к о в и х чисел з ф і к с о в а н о ю комою буде мати вигляд, п о к а з а н и й на рис. 7.37а.
ТІ X У

І і І і
ч
1-Й ярус
— т і , іу -іо,
1-і о,
2-й яруг
ч 3-Й ярус |

2 ч | а |У | а,

П-Й яруг
ч
Ь)

Рис. 7.37. Структура і-го яруса (а) та конвеєрного операційного пристрою (Ь) ділення
двійкових чисел з фіксованою комою за алгоритмом без відновлення залишку
273

Послідовно з'єднавши п таких ярусів, де п - розрядність частки, як показано на рис. 7.37Ь,


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

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


"цифра за цифрою"

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


"цифра за цифрою"

В системі к о м а н д сучасних к о м п ' ю т е р і в п р и с у т н я велика кількість к о м а н д о б ч и с ­


лення елементарних ф у н к ц і й т и п у exp X , I n X , Sin X , Cos X , S h X , C h X , п і д н е с е н н я д о
степеня A m ; arctg y/x т о щ о . В и к о н а н н я ц и х к о м а н д н а у н і в е р с а л ь н о м у А Л П , я к е в и к о н у є
елементарні к о м а н д и , в и м а г а є з н а ч н и х в и т р а т часу. Н а в і т ь р е а л і з а ц і я на у н і в е р с а л ь н о ­
му А Л П досить п р о с т о г о за складом б а з о в и х о п е р а ц і й м е т о д у " ц и ф р а за ц и ф р о ю " не дає
відчутного в и г р а ш у в швидкодії внаслідок його с п е ц и ф і к и , що з н а й ш л а в і д д з е р к а л е н н я ,
наприклад, в необхідності в и к о н а н н я зсувів на з м і н н е ч и с л о р о з р я д і в . Тому в ряді сучас­
них комп'ютерів д о с к л а д у А Л П в в о д я т ь о п е р а ц і й н і п р и с т р о ї д л я о б ч и с л е н н я елемен­
тарних функцій.
Б а г а т о т а к т о в и й А О П (рис. 7.38), що р е а л і з о в у є метод "цифра за ц и ф р о ю " в і д п о в і д н о
до ітераційних р і в н я н ь , н а в е д е н и х в п. 4.5.2, м і с т и т ь :
РгХ, PrY, P r Z , РгС - регістри для з б е р і г а н н я п о ч а т к о в и х значень X , Y , Z , та к о н с т а н т
fl Q Q

С , а т а к о ж результатів п р о м і ж н и х о б ч и с л е н ь X . , Y , Z..
С 3 1 , С 3 2 - схеми зсуву на і р о з р я д і в (і=1,2,...,п);
СВ1, СВ2, СВЗ - суматори-віднімачі;
П З П - п о с т і й н и й з а п а м ' я т о в у ю ч и й п р и с т р і й д л я з б е р і г а н н я констант;
МП - м у л ь т и п л е к с о р .

Зн PrY

Рис. 7.38. Структура багатотактового АОП обчислення елементарних функцій


методом "цифра за цифрою"

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


Т = п ( і + і + і , де т. - час з а т р и м к и на суматорі-віднімачі, і - час з а т р и м к и в схемі
св сз р[ св сз

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


г

18 Зам. 371.
274

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


діючі с т р у к т у р и п р и с т р о ї в з п о р о з р я д н о ю о б р о б к о ю , а т а к о ж багато варіантів проміж­
них структур.
До о с н о в н и х переваг д а н о г о м е т о д у з т о ч к и з о р у м о ж л и в о с т е й його реалізації в АОП
належать:
• п р о с т о т а о б ч и с л ю в а л ь н и х алгоритмів, що б а з у ю т ь с я л и ш е на трьох операціях:
додавання/віднімання, зсув і вибірка з ПЗП;
• о д н о т и п н і с т ь о б ч и с л ю в а л ь н и х а л г о р и т м і в для о б ч и с л е н н я м а й ж е всіх елементар­
них функцій;
• о д н о т и п н і с т ь в и к о н а н н я к о ж н о ї ітерації;
• м о ж л и в і с т ь п о б у д о в и б а г а т о ф у н к ц і о н а л ь н и х А О П , що в и к о р и с т о в у ю т ь даний
метод;
• п о х и б к и ц ь о г о м е т о д у д о с т а т н ь о п о в н о досліджені та легко компенсуються шля­
хом введення додаткових розрядів.

7.Т3.4.2. ОсЗнотактовіш та конвеєрний операційні пристрої обчислення


елементарних функцій методом "цифра за цифрою"

П о с т і й н і с т ь к о н с т а н т і кількості р о з р я д і в зсуву на к о ж н і й ітерації д о з в о л я є при реа­


лізації о д н о т а к т о в о г о о п е р а ц і й н о г о п р и с т р о ю в и д а л и т и П З П для зберігання констант і
схеми зсуву, я к і необхідні в б а г а т о т а к т о в и х о п е р а ц і й н и х п р и с т р о я х (рис. 7.38).
З с у в и здійснюються ш л я х о м відповідного з ' є д н а н н я р о з р я д і в о п е р а ц і й н и х елемен­
тів, а к о н с т а н т и ф о р м у ю т ь с я на вході о п е р а ц і й н о г о елементу ш л я х о м подачі логічного
нуля або о д и н и ц і у в і д п о в і д н и й р о з р я д . Таким ч и н о м , д л я реалізації однієї ітерації алго­
р и т м у " ц и ф р а за ц и ф р о ю " н е о б х і д н о в и к о н а т и одну о п е р а ц і ю в і д н і м а н н я і дві операції
д о д а в а н н я , я к щ о о п е р а т о р і. м а є з н а ч е н н я -1, або одну о п е р а ц і ю д о д а в а н н я і дві операції
в і д н і м а н н я , я к щ о о п е р а т о р ( м а є з н а ч е н н я +1. О п е р а ц і ї д о д а в а н н я і віднімання кодів
чисел м о ж н а в и к о н у в а т и в и к о р и с т о в у ю ч и к о м б і н а ц і й н у схему суматора-віднімача. При
в и к о н а н н і в і д н і м а н н я н е о б х і д н о с т е ж и т и , щ о б в і д ' є м н и к X, У або Ъ п о с т у п а в на другий
вхід суматора-віднімача. Як п о к а з а в аналіз, п р и в и к о р и с т а н н і суматорів-віднімачів об­
р о б к у д а н и х в п р и с т р о ї н а й в и г і д н і ш е в и к о н у в а т и в д о п о в н я л ь н о м у коді. Р е ж и м роботи
с у м а т о р а - в і д н і м а ч а з а б е з п е ч у є т ь с я с и г н а л о м к е р у в а н н я 0, я к щ о в и к о н у є т ь с я операція
д о д а в а н н я , і 1, я к щ о в и к о н у є т ь с я о п е р а ц і я в і д н і м а н н я .
С т р у к т у р а і-го я р у с а к о н в е є р н о г о о п е р а ц і й н о г о п р и с т р о ю для в и к о н а н н я однієї іте­
рації а л г о р и т м у " ц и ф р а за ц и ф р о ю " п о к а з а н а на рис. 7.39а.

І І ї ї І 1 1
і • й ярус

1. _ __ Н Е Е
гУ>--5-
ПЗП
1 131

т: и- й ярус

Рис. 7.39. Структура пристрою для виконання однієї ітерації алгоритму "цифра за цифрою"
275

П а р а м е т р р у п р а в л я є подачею на с у м а т о р - в і д н і м а ч СВЗ к о н с т а н т С. П а р а м е т р {.
управляє с у м а т о р а м и - в і д н і м а ч а м и , п о с т у п а ю ч и із з н а к о в о г о р о з р я д у У. а б о 7. через ко­
мутатор КМ 1 з а л е ж н о від коду операції Ы.
В к л ю ч и в ш и послідовно п т а к и х п р и с т р о ї в , де п - кількість ітерацій, о д е р ж и м о кон­
веєрний о п е р а ц і й н и й п р и с т р і й в и к о н а н н я а л г о р и т м у " ц и ф р а за ц и ф р о ю " (рис. 7.39Ь).
Якщо з описаного п р и с т р о ю в и д а л и т и к о н в е є р н і регістри, о т р и м а є м о о д н о т а к т о в и й
операційний пристрій в и к о н а н н я а л г о р и т м у " ц и ф р а з а цифрою".

7.13.5. Пристрої для виконання арифметичних операцій над числами


з рухомою комою

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

Як відомо, ф о р м а т з р у х о м о ю к о м о ю передбачає н а я в н і с т ь д в о х ч а с т и н ч и с л а - п о ­
рядку (Р) та м а н т и с и (М). Ч и с л а п р е д с т а в л я ю т ь с я у вигляді X = М2 , У = М 2 . ?х
у
Ру

П р и в и к о н а н н і д о д а в а н н я та в і д н і м а н н я п о р я д к и о п е р а н д і в в и р і в н ю ю т ь с я , а м а н т и с и
додаються. П о р я д к и в и р і в н ю ю т ь с я з б і л ь ш е н н я м п о р я д к у м е н ш о г о о п е р а н д у д о з н а ч е н н я
порядку більшого операнду. Цей п о р я д о к є п о р я д к о м результату. Щ о б п р и в и р і в н ю в а н н і
порядків в е л и ч и н а о п е р а н д а не з м і н ю в а л а с я , й о г о м а н т и с а о д н о ч а с н о з м е н ш у є т ь с я . Піс­
л я в и к о н а н н я в и р і в н ю в а н н я п о р я д к і в в и н и к а ю т ь додаткові м о л о д ш і р о з р я д и м а н т и с и ,
які до, або після д о д а в а н н я , в і д к и д а ю т ь с я або з а о к р у г л ю ю т ь с я .
Блок-схема д о д а в а н н я та в і д н і м а н н я д в і й к о в и х чисел з р у х о м о ю к о м о ю н а в е д е н а
на рис. 7.40.

Приймання і аналіз
даних

Вирівнювання
порядків та зсув
мантис
Зникнення мантиси
при зсуві або переповнення
сума Додавання або віднімання при додаванні порядків
рівна 0 мантис

Нормалізація
результату

Кінець

Рис. 7.40. Блок-схема додавання та віднімання двійкових чисел з рухомою комою

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

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


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

і!
Ру Му

Віднімач

Мультиплексор |ч- -•| Мультипле Мультиплексор

Мантиса Мантиса
меншого числа більшого числа

Схема зсуву
Величина зсуву праворуч

Суматор

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

Схема зсуву
Віднімач ліворуч

Зкоригований порядок
Нормалізавана мантиса

I Результат

Рис. 7.41. Структура однотактового операційного пристрою додавання


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

П р и необхідності п р е д с т а в л е н и й на рис. 7.41 о п е р а ц і й н и й п р и с т р і й додавання та


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

7.73.5.2. Пристрої множення та ділення чисел з рухомою комою

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


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

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


разами:
Ъ = М х 2 Р х
. М х 2 ?
у = М х М у 2 С Р х + р
У )

Ъ = Ш = М х 2 Р х
/ М у 2 р
У = М х /М у 2 ^

Блок-схеми в и к о н а н н я ц и х в и р а з і в п р е д с т а в л е н о в і д п о в і д н о на рис. 7.42 а) та Ь).


Початок

і
Иишаченпя т а к а
добутку
Кпіначення т а к а
частки

Перевірка Переповнення,або
символів '>нпі її співмножників = 0 Перевірка на 0
ділнме рінне нулю
ні 0 тільника і ділим»! и

і і ІІереікіцнеііня
Додавання МИ ожени я Вирівнювання ді.ти
иорялкш маніне м о ю ( М^О* М, )

1
1 1
} ІирМП 1! 1.1 і ЦЯ
Вїлнімання Ділення
порядків мантис
переповнені] II

т
КІНІ'ЦЬ

Ь
Рис. 7.42. Блок-схеми виконання операцій множення а) та ділення Ь) чисел з рухомою комою

7.14. Таблично-алгоритмічні операційні пристрої


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

В д а н и й час існує багато т а б л и ч н о - а л г о р и т м і ч н и х методів о б ч и с л е н н я елементар­


н и х ф у н к ц і й , ч а с т и н а з я к и х була р о з г л я н у т а в розділі 4. Тут буде р о з г л я н у т а реалізація
декількох т а б л и ч н о - а л г о р и т м і ч н и х методів о б ч и с л е н н я елементарних ф у н к ц і й , в яких
з а с т о с о в а н и й як з а г а л ь н и й , так і ч а с т к о в и й підходи п р и обчисленні п о п р а в к и . Проекту­
в а н н я т а б л и ч н о - а л г о р и т м і ч н и х о п е р а ц і й н и х п р и с т р о ї в за і н ш и м и , не р о з г л я н у т и м и тут,
а л г о р и т м а м и м о ж е б у т и в и к о н а н е а н а л о г і ч н о приведеному.
Р о з г л я н е м о п р и н ц и п и п о б у д о в и т а б л и ч н о - а л г о р и т м і ч н и х о п е р а ц і й н и х пристроїв
з в и к о р и с т а н н я м ч а с т к о в о г о підходу п р и обчисленні п о п р а в к и на п р и к л а д і реалізації
тригонометричних функцій.
Р о з б и в ш и а р г у м е н т на дві ч а с т и н и Х=Х1+Х2, у т в о р е н і його с т а р ш и м и і молодшими
розрядами, і скориставшись відомими співвідношеннями:
8іп(Х1+Х2)=5іпХ1 С о в Х г + С о в Х І 5іпХ2;
Со8(Х1+Х2)=Со5Х1 СоБХг-БіпХШпХг,
можна значно скоротити об'єм П З П в порівнянні з табличним методом. Структура одно-
тактового операційного пристрою, я к и й реалізує наведений алгоритм, показана на рис. 7.43.

1-
Рг
Х2

БіпХ1 СобХІ Єіпхг СобХ2

ПМ1 ПМ4

Суматор [ | Віднімач

Рис. 7.43. Структура однотактового таблично-алгоритмічного операційного


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

Я к щ о п р и й н я т и , що XI - ціле ч и с л о градусів з дискретністю 1, а Х2 - д р о б о в е число


градусів, з д и с к р е т н і с т ю 0,01, то н е в а ж к о підрахувати, що таблиці, котрі зберігають БіпХІ
і СовХІ, будуть містити по 90 15-розрядних слів, а таблиці, що зберігають 5іпХ2 і СовХ2
- по 1000 15-розрядних слів. З а г а л ь н и й о б ' є м П З П складе 5700 бітів, що в 24 рази менше,
ніж п р и обчисленні т а б л и ч н и м методом. В якості П З П з у ж е п р о ш и т и м и значеннями три­
г о н о м е т р и ч н и х ф у н к ц і й м о ж н а в и к о р и с т а т и мікросхеми ДО505РЕ30068-ДО505РЕ300071
ємністю 4 Кбіти к о ж н а . П е р ш і дві м і к р о с х е м и м і с т я т ь 8 с т а р ш и х р о з р я д і в 512 значень
функції 8іпХ у діапазоні 0...П/4, а дві інші м і к р о с х е м и містять з н а ч е н н я цієї функції в
діапазоні П /4... П / 2 .
Ввівши к о н в е є р н і регістри, в к л ю ч а ю ч и і в п е р е м н о ж у в а ч а х П М , які т а к о ж м о ж н а по­
будувати з а к о н в е є р н и м п р и н ц и п о м , м о ж н а п і д в и щ и т и п р о д у к т и в н і с т ь о п и с а н о г о при­
строю. З р о з у м і л о , що з м е н ш и в ш и «об'єми т а б л и ц ь , т у т збільшені затрати о б л а д н а н н я на
о п е р а ц і й н у частину, т о б т о введені ч о т и р и п е р е м н о ж у в а ч і та с у м а т о р і віднімач.
279

П р и н ц и п и побудови т а б л и ч н о - а л г о р и т м і ч н и х о п е р а ц і й н и х п р и с т р о ї в з в и к о р и с т а н ­
н я м загального підходу п р и обчисленні п о п р а в к и р о з г л я н е м о н а п р и к л а д і о б ч и с л е н н я
елементарних ф у н к ц і й з в и к о р и с т а н н я м р а ц і о н а л ь н о г о н а б л и ж е н н я .
Нехай о б р о б ц і п і д л я г а ю т ь н о р м а л і з о в а н і числа, представлені у ф о р м а т і з фіксованою
комою. О б ч и с л е н н я е л е м е н т а р н и х ф у н к ц і й будемо р о б и т и на основі м е т о д у сегментної
апроксимації, в і д п о в і д н о до я к о г о д і а п а з о н з м і н и а р г у м е н т у [0,5; 1] р о з б и в а є т ь с я на ін­
тервали з н а с т у п н и м н а б л и ж е н н я м ф у н к ц і ї на к о ж н і м і н т е р в а л і за д о п о м о г о ю в и р а з у
У = Б(Х) = А + Ш (X + В) . К о н с т а н т и А та В в и б и р а ю т ь с я з у м о в и мінімізації а б с о л ю т н о ї
2

похибки, а к о н с т а н т а Ш в и б и р а є т ь с я р і в н о ю с т у п е н ю числа 2 (основа системи ч и с л е н ­


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

пзп ПЗП ПЗП


в А

Суматор

Квадратор

і г
хема зсуву

Суматор

Рис. 7.44. Структура однотактового таблично-алгоритмічного операційного


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

Для реалізації о п и с а н о г о необхідно т р и блоки постійної п а м ' я т і для з б е р е ж е н н я к о ­


ефіцієнтів, схему зсуву і два суматори. Для 12-ти р о з р я д н и х о п е р а н д і в з а г а л ь н и й о б ' є м
П З П складає 8960 бітів. К о н с т а н т и А.В.Ш о б ч и с л ю ю т ь з т и м , щ о б з а б е з п е ч и т и з а д а н у
точність о б ч и с л е н н я . Вихідними д а н и м и д л я реалізації а л г о р и т м у р о з р а х у н к у коефіці­
єнтів є: реалізована ф у н к ц і я , в е л и ч и н а і н т е р в а л у зміни аргументу, р о з р я д н і с т ь функції
й аргументу. Після о б ч и с л е н н я о т р и м у ю т ь н а с т у п н і в е л и ч и н и : с у м а р н и й о б ' є м П З П ,
число підінтервалів зміни аргументу, ч и с л о р о з р я д і в , н е о б х і д н и х для к о д у в а н н я н о м е р а
підінтервалу, з н а ч е н н я к о н с т а н т А,В,\У У табл. 7.6 як п р и к л а д наведені з н а ч е н н я кон­
стант, границі підінтервалів і абсолютна похибка о б ч и с л е н ь т п р и о б ч и с л е н н і функції
І/Х. П р и с т р і й , що реалізує ф о р м у л у у = А + Ш ( Х + В ) є б а г а т о ф у н к ц і о н а л ь н и м . Д л я різних
2

функцій к о н с т а н т и м а ю т ь різні з н а ч е н н я . В к л ю ч е н н я к о н в е є р а к о м а н д д о з в о л я є о б ч и с ­
лювати на т а к о м у п р и с т р о ї о д н о ч а с н о к ф у н к ц і ї від к даних.
280

Подібно до о п и с а н о г о , описані підходи м о ж н а з а с т о с у в а т и до і н ш и х таблично-ал­


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

7.75. Короткий зміст розділу


Р о з г л я н у т о п р и н ц и п и п о б у д о в и а р и ф м е т и к о - л о г і ч н о г о п р и с т р о ю сучасних комп'ю­
терів, я к и й є о д н и м з о с н о в н и х вузлів п р о ц е с о р а , п р и з н а ч е н и м для в и к о н а н н я арифме­
т и ч н и х , л о г і ч н и х т а і н ш и х о п е р а ц і й о б р о б к и даних. Р о з к р и т о с т р у к т у р у А Л П для ви­
к о н а н н я е л е м е н т а р н и х о п е р а ц і й та с т р у к т у р у б а г а т о б л о к о в и х А Л П , п р и з н а ч е н и х для
в и к о н а н н я с к л а д н и х о п е р а ц і й , які ініціюються к о м а н д а м и о б р о б к и даних з системи ко­
м а н д комп'ютера. О п и с а н і багатоблокові А Л П з в н у т р і ш н ь о ю регістровою п а м ' я т т ю на
основі т а б л и ч н и х , о д н о т а к т о в и х , б а г а т о т а к т о в и х т а к о н в е є р н и х о п е р а ц і й н и х пристроїв.
П р о в е д е н о класифікацію А Л П з а л е ж н о від способу о б р о б к и операндів. А Л П діляться на
послідовні, п о с л і д о в н о - п а р а л е л ь н і та паралельні. В п е р ш о м у в и п а д к у о б р о б к а операн­
дів в А Л П здійснюється п о с л і д о в н о в часі над к о ж н и м р о з р я д о м , тоді як в останньому
операції здійснюються п а р а л е л ь н о в часі над всіма р о з р я д а м и операндів. За способом
п р е д с т а в л е н н я чисел р о з д і л я ю т ь А Л П з ф і к с о в а н о ю та з р у х о м о ю комою, п р и ч о м у пер­
ші м о ж у т ь бути о р і є н т о в а н і на о б р о б к у цілих а б о д р о б о в и х чисел. З а л е ж н о від способу
в и к о н а н н я операцій А Л П д і л я т ь с я н а о д н о т а к т о в і , коли задана о п е р а ц і я виконується
за один такт, та багатотактові, коли д л я в и к о н а н н я операції п о т р і б н о виконати деяку
кількість тактів. А Л П м о ж у т ь б у т и к о н в е є р н и м и а б о с к а л я р н и м и . П о к а з а н о , щ о вико­
р и с т а н н я к о н в е є р н о г о п р и н ц и п у о б р о б к и д а н и х д о з в о л я є с у т т є в о п і д в и щ и т и продук­
т и в н і с т ь А Л П та к о м п ' ю т е р а в цілому.
Р о з г л я н у т о с т р у к т у р и та п р и н ц и п и організації о б ч и с л е н ь в т а б л и ч н и х , алгоритміч­
н и х та т а б л и ч н о - а л г о р и т м і ч н и х о д н о т а к т о в и х , б а г а т о т а к т о в и х та к о н в е є р н и х операцій­
н и х п р и с т р о я х для в и к о н а н н я о п е р а ц і й д о д а в а н н я , в і д н і м а н н я , м н о ж е н н я , ділення та
о б ч и с л е н н я е л е м е н т а р н и х ф у н к ц і й н а д д в і й к о в и м и ч и с л а м и в ф о р м а т а х з фіксованою та
р у х о м о ю комою.

7.76. Література для подальшого читання


П и т а н н я побудови а р и ф м е т и к о - л о г і ч н о г о п р и с т р о ю р о з г л я н у т і в багатьох підруч­
н и к а х з організації к о м п ' ю т е р і в , з о к р е м а в р о б о т а х [1-8]. Ф о р м а л і з а ц і ї п и т а н ь побудови
б а г а т о т а к т о в и х о п е р а ц і й н и х п р и с т р о ї в п р и с в я ч е н а р о б о т а [9], в якій в о н и названі опера­
ц і й н и м и п р и с т р о я м и з з а к р і п л е н и м и м і к р о о п е р а ц і я м и . О п и с стандартного 4-розрядного
А Л П п р и в е д е н о в р о б о т і [3]. В р о б о т а х [10-12] є о п и с с т р у к т у р и арифметико-логічного
п р и с т р о ю п р о ц е с о р і в Nios, U l t r a S P A R C та РА-8000. П р и н ц и п и п о б у д о в и табличних та
т а б л и ч н о - а л г о р и т м і ч н и х о п е р а ц і й н и х п р и с т р о ї в р о з г л я н у т і в р о б о т а х [13-15]. Прин­
ц и п и п о б у д о в и о д н о т а к т о в и х , б а г а т о т а к т о в и х та к о н в е є р н и х о п е р а ц і й н и х пристроїв за­
п р о п о н о в а н о в р о б о т а х [17-19].

7. 7 7. Література до розділу 7
1. Благовещенский Ю. В., Теслер Г. С. Вычисление элементарных функций на ЭВМ. - К., "Тех­
ника", 1977. - 208 с.
281

2. Байков В. Д., Смолов В. Б. Аппаратурная реализация элементарных функций в ЦВМ. - Л.


ЛГУ - 96с.
3. Каган Б. М. Электронные вычислительные машины и системы. М.: Энергия, 1979. - 528 с.
4. Каган Б. М., Каневский М. М. Цифровые вычислительные машины и системы. М.: Энергия,
1974. - 680 с.
5. Майоров С. А., Новиков Г. И. Структура электронных вычислительных машин. Л. Маши­
ностроение. 1979. - 384 с.
6. Мельник А.А. Выбор метода вычисления элементарных функций в процессорах обработки
сигналов. Тезисы Всесоюзной конференции "Методы и микроэлектронные средства цифрового
преобразования и обработки сигналов". - Рига, 1983.
7. Мельник А.А. О вычислении одного класса элементарных функций путем конвейерной
реализации метода Волдера. -Автоматика и вычислительная техника, 1983, N 6.
8. Мельник А.А. Использование алгоритма Волдера в высокопроизводительных вычисли­
тельных БПФ. - Автометрия, 1984, N 6, с. 85-87.
9. Мельник А.А. Процессоры обработки сигналов. Препринт N 29-89, ИППММ АН УССР,
1989, 63 с.
10. Мельник А.О. Спеціалізовані комп'ютерні системи реального часу. - Львів: Державний
університет "Львівська політехніка", 1996. - 54 с.
11. Коркішко Т., Мельник А., Мельник В. Алгоритми та процесори симетричного блокового
шифрування. - Львів: БаК, 2003. - 168 с.
12. Оранский A . M . Аппаратные методы в цифровой вычислительной технике. -Минск, Из-во
БГУ, 1977. - 208 с.
13. Справочник по цифровой вычислительной технике. Б.Н. Малиновский и др. К. Техніка,
1980. - 320 с.
14. Угрюмов Е.П. Цифровая схемотехника. - СПб.: БХВ - Санкт-Петерберг, 2000. - 528 с.
15. Altera Corporation. Nios programmer's Reference manual. March 2001.
16. Kane, Gerry. PA-RISC 2.0 Architecture, ISBN 0-13-182734-0, Prentice Hall, Englewood Cliffs,
NJ, 1996.
17. Melnyk A. Synthesis of the Data Flow Graph Pipeline Operation Devices. IWK-95, Ilmenau,
1995.
18. Melnyk A.O. The Architecture of the Teal-Time Processing System Optimized to the Data Flow
Intensity. International Conference, Zakopane, August, 1996.
19. D. Patterson, J. Hennessy. Computer Architecture. A Quantitative Approach. Morgan Kaufmann
Publishers, Inc. 1996.
20. Patterson, D. A., 8c Hennessy, J. L. Computer Organization and Design, The Hardware/Software
Interface, 2nd ed., San Mateo, C A : Morgan Kaufmann, 1997.
21. Stallings, W. Computer Organization and Architecture, 5th ed„ New York, NY: Macmillan Pub­
lishing Company, 2000.
22. Sun Microelectronics. UltraSPARC I&II. Sun Microelectronics. 1997.
23. Tanenbaum, Andrew. Structured Computer Organization, 4th ed., Upper Saddle River, NJ: Pre­
ntice Hall, 1999.
24. Voider J.E. The CORDIC trigonometric computing technique. - "IRE Trans.", 1959, 3, pp. 330-334.

7.7 8. Питання до розділу 7


1. Назвіть місце АЛП в комп'ютері.
2. Назвіть функції АЛП.
3. Яким чином АЛП взаємодіє з іншими вузлами процесора.
4. Наведіть класифікацію АЛП.
282

5. Порівняйте послідовний, паралельний та послідовно-паралельний способи обробки ін­


формації в АЛП.
6. Поясніть роботу АЛП для виконання елементарних операцій.
7. Назвіть елементарні операції АЛП. Чому до складу системи команд сучасних комп'ютерів
входять команди виконання елементарних операцій?
8. Назвіть складні арифметичні і логічні операції АЛП.
9. Поясніть, що таке граф алгоритму та як його можна використати при виборі структури
операційного пристрою.
10. Приведіть класифікацію операційних пристроїв.
11. Як організована робота табличних операційних пристроїв?
12. Поясніть принципи роботи багатотактових операційних пристроїв.
13. Поясніть принципи роботи однотактових операційних пристроїв.
14. Поясніть принципи роботи конвеєрних операційних пристроїв.
15. Наведіть схему та опишіть роботу послідовного АЛП додавання та віднімання двійкових
чисел з фіксованою комою.
16. Наведіть схему та опишіть роботу паралельного АЛП додавання та віднімання двійкових
чисел з фіксованою комою.
17. Як побудований однотактовий суматор двійкових чисел за методом вибору переносу?
18. Які є методи прискорення роботи паралельного АЛП додавання та віднімання двійкових
чисел з фіксованою комою?
19. Назвіть чотири методи та чотири базові структури множення двійкових чисел з фіксова­
ною комою.
20. Поясніть роботу багатотактового пристрою множення двійкових чисел з молодших роз­
рядів множника при нерухомому множеному з зсувом суми часткових добутків.
21. Поясніть роботу багатотактового пристрою множення двійкових чисел з молодших роз­
рядів при нерухомій сумі часткових добутків з зсувом множеного вліво.
22. Поясніть роботу багатотактового пристрою множення двійкових чисел з старших розря­
дів при нерухомій сумі часткових добутків з зсувом множеного вправо.
23. Поясніть роботу багатотактового пристрою множення двійкових чисел з старших розря­
дів при нерухомому множеному з зсувом суми часткових добутків вліво.
24. Як будується однотактовий пристрій множення двійкових чисел з фіксованою комою?
25. Наведіть структуру конвеєрного операційного пристрою множення двійкових чисел з
фіксованою комою.
26. Наведіть структуру багатотактового АОП ділення двійкових чисел з відновленням залишку.
27. Наведіть структуру багатотактового АОП ділення двійкових чисел без відновлення залишку.
28. Наведіть структуру конвеєрного операційного пристрою ділення двійкових чисел з фіксо­
ваною комою за алгоритмом з відновленням залишку.
29. Наведіть структуру конвеєрного операційного пристрою ділення двійкових чисел з фіксо­
ваною комою за алгоритмом без відновлення залишку.
30. Поясніть роботу багатотактового пристрою для обчислення елементарних функцій мето­
дом "цифра за цифрою".
31. Поясніть роботу конвеєрного пристрою для обчислення елементарних функцій методом
"цифра за цифрою".
32. Як будуються пристрої додавання і віднімання чисел з рухомою комою?
33. Як будуються пристрої множення та ділення чисел з рухомою комою?
34. Поясніть роботу операційного пристрою для обчислення елементарних функцій таблич­
но-алгоритмічним методом.
Розділ 8

Пристрій/ керу&анш>
8.1. Функції та методи побудови пристрою керування
Пристрій к е р у в а н н я в и р о б л я є послідовність сигналів, необхідних для в и к о н а н н я к о ­
манди, та послідовності к о м а н д , т о б т о п р о г р а м и . К о м а н д а в к о м п ' ю т е р і в и к о н у є т ь с я за
один або за декілька тактів, в к о ж н о м у із я к и х в и к о н у є т ь с я одна а б о декілька м і к р о о п е -
рацій. Кожна м і к р о о п е р а ц і я п р е д с т а в л я є с о б о ю д е я к у е л е м е н т а р н у дію передачі або пе­
р е т в о р е н н я інформації, я к а ініціюється п о с т у п л е н н я м керуючого сигналу (мікронаказу)
на вхід к е р у в а н н я відповідного п р и с т р о ю . П р и к л а д о м м о ж е б у т и к е р у ю ч и й сигнал, я к и й
в с т а н о в л ю є або о ч и щ у є п р а п о р е ц ь стану, к е р у ю ч и й сигнал з а п и с у до регістра, керую­
чий код на вході м у л ь т и п л е к с о р а і т. д. Для реалізації к о м а н д и необхідно на відповідні
керуючі входи подати р о з п о д і л е н у в часі послідовність к е р у ю ч и х сигналів.
П р и с т р і й к е р у в а н н я є о д н и м з вузлів п р о ц е с о р а . Як п р и к л а д на рис. 8.1 п о к а з а н а
взаємодія в процесорі м і ж п р и с т р о є м к е р у в а н н я та а р и ф м е т и к о - л о г і ч н и м п р и с т р о є м і
регістровою пам'яттю.
сигнали
керування
Пристрій керування

сигнали код слово стану


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

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

Рис. 8.1. Взаємодія пристрою керування з іншими вузлами процесора

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


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

Відомі два о с н о в н і м е т о д и побудови логіки ф о р м у в а н н я керуючих сигналів. Перший


з н и х в и р а ж а є т ь с я в тому, що для к о ж н о ї к о м а н д и п р о ц е с о р а існує набір логічних схем,
які в п о т р і б н и х т а к т а х з б у д ж у ю т ь відповідні сигнали к е р у в а н н я . Такий п р и н ц и п керу­
в а н н я о д е р ж а в н а з в у " ж о р с т к о ї " а б о " з а п а я н о ї " логіки.
Д р у г и й метод, я к и й дістав н а з в у п р и н ц и п у м і к р о п р о г р а м н о г о к е р у в а н н я , передбачає
ф о р м у в а н н я к е р у ю ч и х сигналів за в м і с т о м регістра м і к р о к о м а н д , в я к и й мікрокоманди
з а п и с у ю т ь с я із п а м ' я т і м і к р о к о м а н д . Ш л я х о м послідовного з ч и т у в а н н я мікрокоманд із
пам'яті в цей регістр о р г а н і з у є т ь с я п о т р і б н а послідовність керуючих сигналів.
Крім п р и с т р о ю к е р у в а н н я п р о ц е с о р а в к о м п ' ю т е р і м о ж у т ь в и к о р и с т о в у в а т и с ь при­
строї к е р у в а н н я в у з л а м и к о м п ' ю т е р а , н а п р и к л а д , п р и с т р о ї к е р у в а н н я операційними
п р и с т р о я м и А Л П , п р и с т р і й к е р у в а н н я п р о ц е с о р а в в е д е н н я - в и в е д е н н я і т. д. Принципи
побудови в к а з а н и х п р и с т р о ї в є і д е н т и ч н и м и .

8.2. Пристрій керування з жорсткою логікою

8.2.1. Структура пристрою керування з жорсткою логікою


Т и п о в а с т р у к т у р н а схема п р и с т р о ю к е р у в а н н я з ж о р с т к о ю логікою (в англійській
термінології hardwired control) п р е д с т а в л е н а на р и с . 8.2.
Сигнали керування

ЛОГІЧНІ СХЕМИ ФОРМУВАННЯ


% її регістра
СИГНАЛІВ КЕРУВАННЯ станів

Дешифратор
Дешифратор коду
тактів
операції

^ К о д оп
Лічильник тактів

Рис. 8.2. Типова структурна схема пристрою керування з жорсткою логікою

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


імпульси ТІ, п о т р і б н і д л я синхронізації р о б о т и п р и с т р о ю к е р у в а н н я , л і ч и л ь н и к тактів,
в я к о м у з б е р і г а є т ь с я н о м е р в и к о н у в а н о г о в д а н и й час такту, д е ш и ф р а т о р коду опера­
ції та д е ш и ф р а т о р тактів, які п е р е т в о р ю ю т ь д в і й к о в и й код в о д н о р я д н и й , логічні схеми
ф о р м у в а н н я сигналів к е р у в а н н я . Д е ш и ф р а т о р коду операції по коду операції із регістра
к о м а н д РгК ф о р м у є сигнал активізації м і к р о о п е р а ц і ї МО на відповідній шині. З кожним
т а к т о м до л і ч и л ь н и к а тактів додається +1 с и г н а л о м із блоку синхроімпульсів. Дешифра­
т о р тактів ф о р м у є с и г н а л и , відповідні п о т о ч н о м у такту.
Логічні схеми ф о р м у в а н н я сигналів к е р у в а н н я відповідно до сигналів із дешифрато­
ра коду операції, д е ш и ф р а т о р а тактів та кодів у м о в і кодів станів із регістра станів фор­
м у ю т ь с и г н а л и к е р у в а н н я д л я в и к о н а н н я н е о б х і д н и х в д а н о м у такті м і к р о о п е р а ц і й .
285

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

8.2.2. Методи проектування пристрою керування з жорсткою логікою


Методи п р о е к т у в а н н я п р и с т р о ю к е р у в а н н я з ж о р с т к о ю логікою, які з а с т о с о в у ю т ь с я
на практиці, часто є с п е ц і а л ь н о с т в о р е н и м и д л я п о б у д о в и к о н к р е т н о г о п р и с т р о ю і ев­
р и с т и ч н и м и з а п р и р о д о ю , т о м у н е м о ж у т ь легко б у т и ф о р м а л і з о в а н и м и . Для і л ю с т р а ц і ї
найбільш ш и р о к о з а с т о с о в у в а н и х підходів, р о з г л я н е м о т р и методи:
• П е р ш и й метод - це с т а н д а р т н и й а л г о р и т м і ч н и й підхід до п р о е к т у в а н н я послідов­
н і ш и х схем. Його н а з и в а ю т ь м е т о д о м т а б л и ц ь станів, о с к і л ь к и передбачає побудову та­
блиць станів п р и с т р о ю к е р у в а н н я .
• Другий метод є е в р и с т и ч н и м і ґ р у н т у є т ь с я на в и к о р и с т а н н і т а к т о в а н и х елементів
часової з а т р и м к и для п о б у д о в и часової діаграми к е р у ю ч и х сигналів.
• С п о р і д н е н и м з д р у г и м є т р е т і й метод, я к и й передбачає в и к о р и с т а н н я л і ч и л ь н и к і в
для побудови часової діаграми к е р у ю ч и х сигналів.
П е р ш и й метод є н а й б і л ь ш ф о р м а л і з о в а н и м і д о з в о л я є з а с т о с у в а т и м е т о д и мінімі­
зації кількості в е н т и л і в та елементів пам'яті. Два інші м е т о д и є м е н ш ф о р м а л і з о в а н і і
передбачають синтез п р и с т р о ю к е р у в а н н я з часової діаграми сигналів к е р у в а н н я .

8.2.3. Пристрій керування на основі таблиць станів

8.2.3.1. Абстрактні автомати


Метод таблиць станів передбачає р о з г л я д п р и с т р о ю к е р у в а н н я я к ц и ф р о в о г о а в т о ­
мату, тобто логічного п р и с т р о ю , я к и й з а б е з п е ч у є ф о р м у в а н н я сигналів к е р у в а н н я з а
відповідним а л г о р и т м о м з в р а х у в а н н я м своїх в н у т р і ш н і х станів.
Ц и ф р о в и й автомат м о ж н а подати у вигляді його м а т е м а т и ч н о ї (абстрактної) і струк­
турної моделей, які відповідно н а з и в а ю т ь с я а б с т р а к т н и м та с т р у к т у р н и м а в т о м а т а м и .
Абстрактну модель в и к о р и с т о в у ю т ь на п е р ш о м у етапі п р о е к т у в а н н я , коли о п и с у ю т ь
ф у н к ц і о н у в а н н я автомату, т о б т о п р а в и л а п е р е р о б к и вхідної і н ф о р м а ц і ї у вихідну. На
цьому етапі автомат подається у вигляді "чорної скриньки". Розгляд а б с т р а к т н о ї моде­
лі ц и ф р о в о г о а в т о м а т у д о з в о л я є п р о в о д и т и його п о п е р е д н ю о п т и м і з а ц і ю ще до е т а п у
структурного синтезу. С т р у к т у р н у модель з а с т о с о в у ю т ь д л я п о б у д о в и схеми ц и ф р о в о г о
автомату.
А б с т р а к т н и м а в т о м а т о м ( м а т е м а т и ч н о ю моделлю ц и ф р о в о г о а в т о м а т у ) н а з и в а ю т ь
сукупність з п'яти об'єктів А = {X, 5", 7,8, А,}. Де:

X = {х.}, і є 1,т - м н о ж и н а вхідних сигналів (вхідний алфавіт);

Б = /5у/, у є 1, п - м н о ж и н а станів (внутрішніх) а в т о м а т у (алфавіт станів автомату);

У = {у }, к є 1,/ - м н о ж и н а в и х і д н и х сигналів (вихідний алфавіт);


к
286

8:: ХхБ —> 5"- ф у н к ц і я переходів автомату. Ф у н к ц і я переходів показує, що автомат,


я к и й п е р е б у в а є у стані Sj п р и поданні вхідного стану х, переходить в д е я к и й стан я , р

т о б т о я = 8 Щ Хі);
г

X:: ХхБ -» У - ф у н к ц і я виходів автомату. Ф у н к ц і я виходів X показує, що авто­


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

А б с т р а к т н и й а в т о м а т м а є один вхідний канал і один в и х і д н и й канал (рис. 8.3).

^ Х = {х,,х ,...,х }^
2 т Y={y„y ,.. y )
2 > l

S-{s,,s ....,s„}
2

Рис. 8.3. Абстрактний автомат

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


в якого м н о ж и н а в н у т р і ш н і х станів і м н о ж и н а вхідних сигналів (а, отже, й м н о ж и н а ви­
хідних сигналів) є с к і н ч е н и м и м н о ж и н а м и , повністю в и з н а ч е н и й (детермінований) аб­
с т р а к т н и й автомат, в я к о г о ф у н к ц і я переходів 8 і ф у н к ц і я виходів X визначені для всіх
пар {X ,Sj ), т а і н і ц і а л ь н и й а б с т р а к т н и й автомат, в я к о г о один із станів s є S виділено
t Q

як п о ч а т к о в и й стан, з я к о г о а в т о м а т з а в ж д и п о ч и н а є р о б о т у .
О т ж е , на а б с т р а к т н о м у рівні ф у н к ц і о н у в а н н я ц и ф р о в и й автомат розглядається як
п е р е т в о р ю в а ч вхідних слів у вихідні слова, які с к л а д а ю т ь с я з букв вхідного і вихідного
алфавіту. В н у т р і ш н і с т а н и а в т о м а т у - це і н ф о р м а ц і я п р о м и н у л е (передісторію) розви-.
тку п р о ц е с у к е р у в а н н я в часі. Вона д о з в о л я є в и к о р и с т а т и час як я в н у вхідну змінну. По­
т р і б н о в і д з н а ч и т и , що а б с т р а к т н и й а в т о м а т ф у н к ц і о н у є в д и с к р е т н о м у часі, а переходи
з одного стану в і н ш и й п р о в о д я т ь с я м и т т є в о .
З а л е ж н о від способу г е н е р у в а н н я з н а ч е н ь вихідних сигналів р о з р і з н я ю т ь три типи
автоматів: Мілі, М у р а , С-автомат.
А в т о м а т Мілі о п и с у є т ь с я н а с т у п н о ю системою р і в н я н ь :
y(t) = X(x(t) s(t))
s(t + l) = b(x(t) s(t)).
А в т о м а т Мілі м о ж н а п р е д с т а в и т и у вигляді с т р у к т у р н о ї схеми (рис. 8.4), вузли якої
п р е д с т а в л я ю т ь відповідно ф у н к ц і ю виходів X , ф у н к ц і ю переходів 5 і п а м ' я т ь станів S,
та з'єднані м і ж с о б о ю в і д п о в і д н и м и з в ' я з к а м и . З н а ч е н н я на його виході в м о м е н т часу t
в и з н а ч а є т ь с я з н а ч е н н я м в д а н и й м о м е н т на його вході та його станом, а т а к о ж функцією
виходів. С т а н а в т о м а т у Мілі в м о м е н т ч а с у t + І в и з н а ч а є т ь с я з н а ч е н н я м в д а н и й момент
на його вході та й о г о с т а н о м , а т а к о ж ф у н к ц і є ю переходів.
. x(t) .
y(t)
X

S(t + 1)

S(t)

Рис. 8.4. Автомат Мілі


287

Автомат М у р а о п и с у є т ь с я н а с т у п н о ю с и с т е м о ю р і в н я н ь :
y(t) = X(s(t))
s(/+l)=8(x(0 s(t)).
А в т о м а т М у р а т а к о ж м о ж н а п р е д с т а в и т и у вигляді с т р у к т у р н о ї схеми (рис. 8.5), вуз­
ли якої п р е д с т а в л я ю т ь відповідно ф у н к ц і ю виходів X , ф у н к ц і ю переходів 5 і п а м ' я т ь
станів S, та з'єднані м і ж собою в і д п о в і д н и м и з в ' я з к а м и .
x(t) y(t)

S(t + 1)

S(t)

Рис. 8.5. Автомат Мура

З н а ч е н н я на його виході в м о м е н т часу t в и з н а ч а є т ь с я його с т а н о м в д а н и й момент,


а також ф у н к ц і є ю виходів. Стан а в т о м а т у М у р а в м о м е н т часу t+1 в и з н а ч а є т ь с я значен­
ням в д а н и й м о м е н т на й о г о вході та й о г о с т а н о м , а т а к о ж ф у н к ц і є ю переходів.
С-автомат о п и с у є т ь с я н а с т у п н о ю системою р і в н я н ь :
Уі(1) = ХХх(0 s(t))

Уі (() = хМо)
s(t + l) = b(x(Q s(t))

С-автомат м о ж н а п р е д с т а в и т и у вигляді с т р у к т у р н о ї схеми (рис. 8.6), вузли якої пред­


ставляють відповідно функції виходів А, 1 та А. 2, ф у н к ц і ю переходів 5 і п а м ' я т ь станів
S, та з'єднані м і ж с о б о ю в і д п о в і д н и м и з в ' я з к а м и . Ц е й а в т о м а т м а є два виходи. З н а ч е н н я
на п е р ш о м у його виході в м о м е н т часу t в и з н а ч а є т ь с я з н а ч е н н я м в д а н и й м о м е н т на його
вході та його станом, а т а к о ж п е р ш о ю ф у н к ц і є ю виходів. З н а ч е н н я на його д р у г о м у в и ­
ході в м о м е н т часу t в и з н а ч а є т ь с я його с т а н о м в д а н и й момент, а т а к о ж другою ф у н к ц і є ю
виходів. Стан а в т о м а т у в м о м е н т часу t+1 в и з н а ч а є т ь с я з н а ч е н н я м в д а н и й м о м е н т на
його вході та його станом, а т а к о ж ф у н к ц і є ю переходів.
x(t)
y,(t)

У0>
2

SCt н- П

S(t)

Рис. 8.6. С-автомат

Ф а к т и ч н о С-автомат є к о м б і н а ц і є ю автоматів Мілі та Мура.


288

8.2.3.2. Мови опису функціонування автоматів

Д л я того, щ о б з а д а т и а б с т р а к т н и й автомат, п о т р і б н о задати всі п'ять об'єктів


{У,5,У,6Д}.
М н о ж и н и X, 5, У з а д а ю т ь с я як з в и ч а й н і м н о ж и н и в м а т е м а т и ц і , н а п р и к л а д , простим
п е р е л і ч у в а н н я м всіх її елементів, т о м у їх з а д а н н я на п р а к т и ц і не в и к л и к а є ніяких труд­
нощів.
Н а й б і л ь ш т р у д о м і с т к и м є з а д а н н я ф у н к ц і й 8 Д , які власне і визначають алгоритм
ф у н к ц і о н у в а н н я автомату. Д л я о п и с у а л г о р и т м у ф у н к ц і о н у в а н н я автомату, тобто для
з а д а н н я § Д , існують різні з а с о б и , які часто н а з и в а ю т ь м о в а м и . Існують стандартні т а
початкові м о в и . С т а н д а р т н і м о в и з а д а ю т ь а в т о м а т о д н и м із т р ь о х способів: матрично
( т а б л и ч н о ) , г р а ф і ч н о , а н а л і т и ч н о . До п о ч а т к о в и х м о в в і д н о с я т ь первісні таблиці вклю­
чень, логічні схеми а л г о р и т м і в і г р а ф - с х е м и а л г о р и т м і в . С т а н д а р т н і м о в и частіше засто­
с о в у ю т ь с я д л я з а д а н н я а в т о м а т і в з а г а л ь н о г о виду, в той же час початкові мови знайшли
ш и р о к е з а с т о с у в а н н я для ч а с т к о в и х автоматів.
М о в а м а т р и ц ь (таблиць) п е р е д б а ч а є н а я в н і с т ь двох т а б л и ц ь : таблиці переходів і та­
блиці виходів, а б о однієї таблиці з ' є д н а н ь .
Таблиця переходів задає в і д о б р а ж е н н я X х 5 — ^ 5 , т о б т о задає функцію переходів 8.
П р и к л а д . Н е х а й на а в т о м а т п о с т у п а ю т ь вхідні сигнали, які м а ю т ь три букви, та нехай
він м а є ч о т и р и с т а н и : X = {х,, х , х^, 8 = {$,,
2 $ , $ }. В табл. 8.1 о п и с а н о повністю визна­
3 4

чений автомат для даного прикладу.


Таблиця 8.1
\ Х ( І )
Х1 Х2 хз

51 Б1 Б1
Э2 БЗ Б4 Б2
БЗ ЭЗ Й1 Б4
Б4 БЗ Б1 Э2

З п е р ш о г о р я д к а табл. 8.1 в и д н о , що п е р е б у в а ю ч и в стані 81 при поступленні вхідно­


го сигналу XI а в т о м а т не з м і н ю є с в о г о стану, так само як і п р и п о с т у п л е н н і вхідного сиг­
налу ХЗ, а при п о с т у п л е н н і вхідного с и г н а л у Х2 він перейде в стан Б2. Подібним чином
м о ж н а п р о в е с т и аналіз і н ш и х р я д к і в таблиці.
Я к щ о а в т о м а т ч а с т к о в и й , то д л я п а р (х , $^), д л я я к и х стан не визначений, в клітинці
{

таблиці с т а в и т ь с я п р о ч е р к . Як в и д н о , в и г л я д таблиці переходів не з а л е ж и т ь від того,


я к и й т и п а в т о м а т у в и к о р и с т о в у є т ь с я : Мілі, М у р а ч и С-автомат.
Таблиці виходів ц и х а в т о м а т і в в і д р і з н я ю т ь с я .
У к л і т и н ц і т а б л и ц і виходів а в т о м а т у Мілі с т а в и т ь с я в и х і д н и й сигнал у , я к и й фор­
м у є а в т о м а т Мілі, що з н а х о д и т ь с я в стані 5, і на вході я к о г о діє сигнал х.. П р и к л а д по­
вністю в и з н а ч е н о г о а в т о м а т у Мілі з в х і д н и м а л ф а в і т о м X = {х,, х , х }, а л ф а в і т о м станів;
2 3

5 = /і,, 5 , 5 , $ } та в и х і д н и м а л ф а в і т о м У = {у,, у , у^ наведено в табл. 8.2.


2 3 4 2
289

Таблиця 8.2
\Х(1) Х1 Х2 хз
Э1 У1 У1 У2
Э2 УЗ УЗ УЗ
ЭЗ У2 У1 УЗ
Б4 У2 У1 УЗ
З п е р ш о г о р я д к а табл. 8.2 в и д н о , що п е р е б у в а ю ч и в стані 51 п р и п о с т у п л е н н і вхідного
сигналу XI на виході а в т о м а т у буде с ф о р м о в а н о сигнал У 1 , так само, як і п р и п о с т у п л е н ­
ні вхідного сигналу Х2, а п р и п о с т у п л е н н і вхідного сигналу ХЗ на виході а в т о м а т у буде
с ф о р м о в а н о сигнал У2. П о д і б н и м ч и н о м м о ж н а п р о в е с т и аналіз і н ш и х р я д к і в таблиці.
В таблиці виходів повністю в и з н а ч е н о г о а в т о м а т у М у р а к о ж н о м у с т а н у а в т о м а т у
призначається відповідний в и х і д н и й сигнал у . П р и к л а д повністю в и з н а ч е н о г о а в т о м а т у
Мура з а л ф а в і т о м станів 5 = /5,, 5 , 5 ,в } та в и х і д н и м а л ф а в і т о м У = {у,, у? ] наведено в
2 3 4 Уъ

табл. 8.3.
Таблиця 8.3
щ У(г)
Э1 У1
Э2 У1
БЗ У2
Б4 УЗ
З табл. 8.3 в и д н о , що с т а н у Б1 та 52 а в т о м а т у відповідає в и х і д н и й сигнал У 1 , стану БЗ
відповідає в и х і д н и й сигнал У2, а с т а н у відцовідає в и х і д н и й сигнал УЗ.
С-автомат буде з а д а в а т и с я д в о м а т а б л и ц я м и виходів, п е р ш а з я к и х відповідає табли­
ці виходів а в т о м а т у Мілі, а друга - таблиці а в т о м а т у Мура.
На п р а к т и ц і таблиці переходів і таблиці виходів часто с у м і щ а ю т ь с я в одну с у м і щ е н у
таблицю. Табл. 8.4 є с у м і щ е н о ю т а б л и ц е ю а в т о м а т у Мілі д л я в и щ е н а в е д е н о г о прикладу.
Таблиця 8.4
\ Х(г)
8(1Г\ Х1 Х2 ХЗ
Э1/У1 82/У1 31/У2
Э2 БЗ/УЗ 54/УЗ эг/уз
БЗ Б3/У2 БІ/УІ 34/УЗ
Э4 Э3/У2 Э1/У1 Э2/У3
З першого рядка табл. 8.4 в и д н о , що п е р е б у в а ю ч и в стані Б1 п р и п о с т у п л е н н і вхідно­
го сигналу XI автомат з а л и ш и т ь с я в т о м у ж стані, а на виході а в т о м а т у буде с ф о р м о в а н о
сигнал У 1 , при п о с т у п л е н н і вхідного с и г н а л у Х2 а в т о м а т п е р е й д е в стан 82, а на виході
автомату буде с ф о р м о в а н о сигнал У 1 , п р и п о с т у п л е н н і вхідного сигналу ХЗ а в т о м а т за­
л и ш и т ь с я в тому ж стані, а на виході а в т о м а т у буде с ф о р м о в а н о сигнал У2. П о д і б н и м
ч и н о м м о ж н а п р о в е с т и аналіз і н ш и х р я д к і в таблиці.
290

Як в ж е з а з н а ч и л о с ь в и щ е , м о ж н а задати к е р у ю ч и й автомат за допомогою єдиної та­


блиці з ' є д н а н ь . Таблиця з ' є д н а н ь а б с т р а к т н о г о а в т о м а т у є к в а д р а т н о ю і містить стільки
с т о в п ц і в та р я д к і в , скільки р і з н и х станів м а є д а н и й автомат. В клітинці ставиться вхід­
н и й сигнал, під дією я к о г о в і д б у в а є т ь с я перехід а в т о м а т у зі стану в стан. Я к щ о матри­
ц е ю з ' є д н а н ь з а д а є т ь с я а в т о м а т Мілі, то р а з о м з в х і д н и м с и г н а л о м вказується вихідний
сигнал, я к и й автомат Мілі видає, в и к о н у ю ч и перехід (табл. 8.5).
Таблиця 8.5
" \ S(t)
S(t)\^ S1 S2 S3 S4
X1/Y1
S1 X2/Y1
X3/Y2
S2 X3/Y3 X1/Y3 X2/Y3

S3 X2/Y1 X1/Y2 X3/Y3


S4 X2/Y1 X3/Y2 X1/Y2

З першого р я д к а табл. 8.5 в и д н о , що автомат з а л и ш а є т ь с я в тому ж стані 81 при посту­


пленні вхідних сигналів XI та ХЗ, і при ц ь о м у на його виході будуть відповідно сигнали У1,
та У2, та переходить в стан 82 при п о с т у п л е н н і вхідного сигналу Х2, і при цьому на його
виході буде сигнал У 1 . П о д і б н и м ч и н о м м о ж н а провести аналіз інших рядків таблиці.
Д л я а в т о м а т у М у р а в м а т р и ц і з ' є д н а н ь вихідні с и г н а л и с т а в л я т ь с я біля станів авто­
мату, які і д е н т и ф і к у ю т ь р я д к и м а т р и ц і .
М о в а графіки передбачає з а с т о с у в а н н я для з а д а н и я а б с т р а к т н о г о автомату орієнтова­
ного графа. Стан а в т о м а т у з о б р а ж а є т ь с я в е р ш и н а м и графа, а переходи між станами - ду­
гами м і ж відповідними в е р ш и н а м и . П р и ц ь о м у конкретній дузі графа приписується буква
х, вхідного а л ф а в і т у автомату, я к а вказує на перехід при поступленні цього сигналу.
Я к щ о г р а ф з о б р а ж а є а в т о м а т Мілі (рис. 8.7), то вихідні сигнали автомату ставляться
на дугах г р а ф а (згідно з т а б л и ц е ю виходів) р а з о м з б у к в о ю вхідного сигналу. Тут в якості
п р и к л а д у в з я т о а в т о м а т Мілі, о п и с а н и й в табл. 8.4.

Рис .8.7. Граф автомату Мілі

Я к щ о г р а ф о м з о б р а ж а є т ь с я а в т о м а т М у р а (рис. 8.8), то вихідні сигнали автомату


с т а в л я т ь с я біля в е р ш и н и г р а ф а в і д п о в і д н о до таблиці виходів а в т о м а т у (табл. 8.3).
291

Рис. 8.8. Граф автомату Мура

Мова а н а л і т и ч н и х в и р а з і в передбачає з а д а н н я а в т о м а т у ш л я х о м з а п и с у д л я к о ж н о г о
стану автомату в і д о б р а ж е н н я F ., я к е м і с т и т ь н а б о р и з т р ь о х об'єктів s , х, у , п р и ч о м у
y n к

тільки таких, які в к а з у ю т ь на наявність переходу а в т о м а т у зі с т а н у s • в стан s при дії n

вхідного сигналу x і видачі при ц ь о м у в и х і д н о г о с и г н а л у у .


t к

Приклад:

Р,2 = 'Л)Л(*2 ЇУ \?2<Х 1


3 3 Уз)}.

8.2.3.3. Структурний синтез цифрових автоматів

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


їхні зв'язки, н а з и в а ю т ь с т р у к т у р н и м с и н т е з о м . В з а г а л ь н о м у в и п а д к у задача с т р у к т у р ­
ного синтезу з в о д и т ь с я до к о м п о з и ц і ї д е я к и х п р о с т и х автоматів, т о б т о до п о ш у к у спо­
собу з'єднань ц и х автоматів м і ж собою. Як п р а в и л о , е ф е к т и в н о р о з в ' я з у є т ь с я задача
структурного синтезу тільки для п е в н о г о н а б о р у п р о с т и х автоматів певного в и д у - еле­
ментарних автоматів, які складаються з елементів п а м ' я т і , що м а ю т ь більше одного стій­
кого стану (елементарних автоматів з п а м ' я т т ю ) та к о м б і н а ц і й н и х схем ( е л е м е н т а р н и х
автоматів без пам'яті).
Метод синтезу, в основу якого покладені елементарні а в т о м а т и , о т р и м а в н а з в у ка­
нонічного методу с т р у к т у р н о г о синтезу автоматів. З а г а л ь н а с т р у к т у р а е л е м е н т а р н о г о
автомату, що складається з пам'яті та к о м б і н а ц і й н о ї схеми, представлена на рис. 8.9.

ßi ß 2 ß

« • •
а, «Ks
• • •
• • •
пам'ять
Комбінаційна схема
М, М 2 • • • M k s (тривіальний автомат)

|. . .
* • * u ks

co o ] C 2 ю к у

Рис. 8.9. Загальна структура елементарного автомату


Рис. 8.8. Граф автомату Мура

Мова а н а л і т и ч н и х в и р а з і в передбачає з а д а н н я а в т о м а т у ш л я х о м з а п и с у д л я к о ж н о г о
стану автомату в і д о б р а ж е н н я F , я к е м і с т и т ь н а б о р и з т р ь о х об'єктів s ,х у , п р и ч о м у
sj n ( к

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

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

Приклад:

'*& = ' у М ( Х 2 /у,)Д(д / )} 3 Л

^2 = &<Л fy XS (x
3 A 3 fy \S (x
3 3 3 / )\
Уз

8.2.3.3. Структурний синтез цифрових автоматів

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


їхні зв'язки, н а з и в а ю т ь с т р у к т у р н и м с и н т е з о м . В з а г а л ь н о м у в и п а д к у задача с т р у к т у р ­
ного синтезу з в о д и т ь с я до к о м п о з и ц і ї д е я к и х п р о с т и х автоматів, т о б т о до п о ш у к у спо­
собу з'єднань ц и х автоматів м і ж собою. Як п р а в и л о , е ф е к т и в н о р о з в ' я з у є т ь с я задача
структурного синтезу тільки д л я п е в н о г о н а б о р у п р о с т и х автоматів певного в и д у - еле­
ментарних автоматів, які складаються з елементів пам'яті, що м а ю т ь більше одного стій­
кого стану (елементарних автоматів з п а м ' я т т ю ) та к о м б і н а ц і й н и х схем ( е л е м е н т а р н и х
автоматів без пам'яті).
Метод синтезу, в основу якого покладені елементарні а в т о м а т и , о т р и м а в н а з в у ка­
нонічного методу с т р у к т у р н о г о синтезу автоматів. З а г а л ь н а с т р у к т у р а елементарного
автомату, що складається з п а м ' я т і та к о м б і н а ц і й н о ї схеми, представлена на рис. 8.9.

ß: ß 2 ß

О, • Ш «
• • • "*V
пам'ять
Комбінаційна схема
м, м 2 • • • M k s (тривіальний автомат)

и, и * • * u ks |. . .
2
. . .

Ш,С0 2 GJ k y

Рис. 8.9. Загальна структура елементарного автомату


292

Е л е м е н т а р н и й а в т о м а т м а є кх входів р 1 р 2... р кх, ку виходів со,со ... 2 та кв виходів


п а м ' я т і станів а а а 2 . С и г н а л и к е р у в а н н я п а м ' я т т ю и ,и ,...и
] 2 к о п и с у ю т ь с я за допо­
могою б у л е в и х ф у н к ц і й , я к і н а з и в а ю т ь с я ф у н к ц і я м и з б у д ж е н н я . Таким ч и н о м , для побу­
д о в и с т р у к т у р н о г о а в т о м а т у п о т р і б н о м а т и елементи п а м ' я т і і набір логічних елементів,
які у т в о р ю ю т ь ф у н к ц і о н а л ь н о п о в н у с и с т е м у д л я п о б у д о в и к о м б і н а ц і й н о ї схеми.
Канонічний метод структурного синтезу розділяють на наступні етапи:
• кодування,
• в и б і р т и п у та с т р у к т у р и а б с т р а к т н о г о автомату,
• в и б і р елементів п а м ' я т і ,
• п о б у д о в а р і в н я н ь булевих ф у н к ц і й з б у д ж е н н я і виходів автомату,
• п о б у д о в а с т р у к т у р н о ї схеми автомату.
Р о з г л я н е м о к о ж е н з етапів.
К о д у в а н н я . Н а г а д а є м о , що а б с т р а к т н и й а в т о м а т з а д а є т ь с я в вигляді А = { . у Я ^ б Д } .
П р и переході на с т р у к т у р н и й р і в е н ь м н о ж и н и сигналів X та У, а т а к о ж сигнали Б потріб­
но з о б р а з и т и у вигляді д в і й к о в о г о вектору.
Н е х а й 5 = /5,, 5 , 5 ,5^ 5 ,5^, тоді к = } ^ М; [ = ]
2 3 5 5 2 [ = 3. Тобто для нумерації кожно­
го стану п о т р і б н о 3 р о з р я д и , тоді 5 = {000,001,010,011,100,101}. Фізично в с т р у к т у р н о м у авто­
маті буде т р и стани, кожен з я к и х м о ж е п р и й н я т и тільки два значення 0 або 1. Сукупність
значень ц и х т р ь о х станів буде відповідати о д н о м у із станів абстрактного автомату.
П р и к л а д : а в т о м а т о п и с у є т ь с я с у м і щ е н о ю т а б л и ц е ю переходів та виходів (табл. 8.6).
Таблиця 8.6

Х1 Х2

ЄЇ/УЗ

Э2 33/У2 вілч
Б2Г/2

Тобто він м а є т р и с т а н и М = п = 3, два вхідних сигнали М = т = 2 та ч о т и р и вихідних


5 х

с и г н а л и М = 1 = 4. Вони в і д п о в і д н о м о ж у т ь б у т и з а к о д о в а н і н а с т у п н о ю кількістю роз­


у

рядів: К = 2, К = 1 та К = 2.
5 х у

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


в и х і д н и х сигналів - в табл. 8.9.
Таблиця 8.7 Таблиця 8.8 Таблиця 8.9

Щ а\ а2 У(і) со\ и)2


Р
Х1 0 Э1 0 0 У1 0 0

Х2 1 Б1 0 1 У2 0 1

Э1 1 0 УЗ 1 0

У4 1 1

Тоді с у м і щ е н а т а б л и ц я переходів та виходів (табл. 8.6) з з а к о д о в а н и м и входами, ста­


н а м и та в и х о д а м и , буде м а т и в и г л я д табл. 8.10.
293

Таблиця 8.10
\ в 0 1
м,и / щсо
2 2 И|И / щоз
2 г

00 01/00 00/10
01 10/01 00/11
10 10/00 01/01
Побудова а б с т р а к т н о г о автомату.
Структурна схема ц и ф р о в о г о а в т о м а т у Мілі для р о з г л я д у в а н о г о п р и к л а д у м а є в и ­
гляд, показаний на рис. 8.10.
\У> Х |00 2

Комбінаційна схема,
що р е а л і з у є *
функцію виходів

М. М,

Комбінаційна схема,
ще реалізує
функцію переходу

ІЗ 1
ßi

Рис. 8.10. Структурна схема цифрового автомату д ля розглядуваного приклад у

Вибір елементів пам'яті.


В якості елементів пам'яті с т р у к т у р н о г о а в т о м а т у м о ж у т ь бути в и к о р и с т а н і всі відо­
мі типи тригерів, з о к р е м а D - т р и г е р и , RS-тригери, Т-тригери, JK-тригери.
Якщо в якості елементів пам'яті в и б и р а ю т ь с я т р и г е р и , які м а ю т ь вхід синхронізації,
то структурний автомат буде с и н х р о н н и м , а я к щ о в и б и р а ю т ь с я а с и н х р о н н і тригери, то
автомат буде а с и н х р о н н и м .
Побудова р і в н я н ь булевих ф у н к ц і й з б у д ж е н н я і виходів автомату.
Провівши к о д у в а н н я та в и б р а в ш и систему л о г і ч н и х елементів, м о ж н а о д н о з н а ч н о
визначити с т р у к т у р у к о м б і н а ц і й н и х схем автомату. Р і в н я н н я булевих ф у н к ц і й будують­
ся на основі таблиці істинності функції з б у д ж е н н я , я к а в свою чергу будується на основі
структурної таблиці переходів і таблиці переходів елемента пам'яті. Д л я наведеної в и щ е
таблиці маємо:
и =a,a ß
х 2

н =a oc2ßva a2ß
2 1 I

w, = ßa,
w =a,a va,a2ß .
2 2
293

Таблиця 8.10
0 1
и,и / щт
2 г

00 01/00 00/10
01 10/01 00/11
10 10/00 01/01
Побудова а б с т р а к т н о г о автомату.
С т р у к т у р н а схема ц и ф р о в о г о а в т о м а т у Мілі для р о з г л я д у в а н о г о п р и к л а д у м а є в и ­
гляд, п о к а з а н и й на рис. 8.10.
0)

Комбінаційна схема,
що реалізує
функцію виходів

а а.

Комбінаційна с х е м а ,
що реалізує
функцію переходу

X
Р
Рис. 8.10. Структурна схема цифрового автомату для розглядуваного прикладу

Вибір елементів пам'яті.


В якості елементів пам'яті с т р у к т у р н о г о а в т о м а т у м о ж у т ь бути в и к о р и с т а н і всі відо­
мі типи тригерів, з о к р е м а Б - т р и г е р и , КБ-тригери, Т-тригери, І К - т р и г е р и .
Я к щ о в якості елементів пам'яті в и б и р а ю т ь с я т р и г е р и , я к і м а ю т ь вхід синхронізації,
то с т р у к т у р н и й автомат буде с и н х р о н н и м , а я к щ о в и б и р а ю т ь с я а с и н х р о н н і т р и г е р и , то
автомат буде а с и н х р о н н и м .
Побудова р і в н я н ь булевих ф у н к ц і й з б у д ж е н н я і виходів автомату.
П р о в і в ш и к о д у в а н н я т а в и б р а в ш и систему л о г і ч н и х елементів, м о ж н а о д н о з н а ч н о
визначити с т р у к т у р у к о м б і н а ц і й н и х схем автомату. Р і в н я н н я булевих ф у н к ц і й будують­
ся на основі таблиці істинності ф у н к ц і ї з б у д ж е н н я , я к а в свою чергу будується на основі
структурної таблиці переходів і таблиці переходів елемента пам'яті. Для наведеної в и щ е
таблиці маємо:
«, =а,ос Р 2

и =а,а2Руа,а2Р
2

>?, = р а ,
н> = а , а у а , а 2 Р .
2 2
294

Побудова с т р у к т у р н о ї схеми автомату.


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

аі

сої

С
Q
D
а2 со2
Q АБО
R

Рис. 8.11. Схема цифрового автомату для розглянутого прикладу

8.2.4. Пристрій керування на основі синхронних елементів часової


затримки
П р и с т р і й к е р у в а н н я на основі с и н х р о н н и х елементів часової з а т р и м к и будується з
блок-схеми, я к а в к а з у є п о р я д о к ф о р м у в а н н я послідовності сигналів керування. Струк­
т у р а т а к и м ч и н о м п о б у д о в а н о г о п р и с т р о ю к е р у в а н н я по суті п о в т о р ю є структуру блок-
схеми, т о б т о схема п р и с т р о ю к е р у в а н н я в і д о б р а ж а є послідовність ф о р м у в а н н я сигналів
к е р у в а н н я . В о с н о в у м е т о д у п о б у д о в и п р и с т р о ю к е р у в а н н я в к а з а н о г о т и п у покладено
те, що ф о р м у в а н н я н а б о р у к е р у ю ч и х сигналів в послідовні м о м е н т и часу м о ж н а здій­
с н и т и ш л я х о м з д і й с н е н н я їх часової з а т р и м к и . Тобто, м а ю ч и сигнал СІ в момент часу
ї ї , ш л я х о м й о г о з а т р и м к и на о д и н такт, м о ж н а с ф о р м у в а т и сигнал С2 в м о м е н т часу 12
і т. д. В доволі с п р о щ е н о м у вигляді п р а в и л а п о б у д о в и п р и с т р о ю к е р у в а н н я на основі
блок-схеми є н а с т у п н и м и :
1. К о ж н і дві п о с л і д о в н о з'єднані м і к р о о п е р а ц і ї з а м і н ю ю т ь с я о д н и м елементом за­
т р и м к и , як це п о к а з а н о на рис. 8.12а. В я к о с т і елемента з а т р и м к и м о ж е бути використа­
н и й т р и г е р т и п у V, я к и й керується с п і л ь н и м т а к т о в и м сигналом. М і к р о н а к а з и подають­
ся на вхід к е р у в а н н я відповідного вузла к о м п ' ю т е р а п р я м о з входу та виходу елемента
затримки.
2. Лінії з в ' я з к і в блок-схеми, які о б ' є д н у ю т ь с я в о д н у лінію, п е р е т в о р ю ю т ь с я в к-вхо-
дову логічну схему А Б О , де к - К І Л Ь К І С Т Ь Л І Н І Й , Я К це п о к а з а н о на рис. 8.12Ь.
3. Умовна в е р ш и н а , я к а в і д о б р а ж а є у м о в н и й перехід в потоці керуючих сигналів, ре­
алізується д в о м а л о г і ч н и м и елементами І, як це п о к а з а н о на рис. 8.12с. Ф а к т и ч н о ця вер­
ш и н а є о д н о р о з р я д н и м д е м у л ь т и п л е к с о р о м , я к и й керується сигналом х.
295

а Ь с

Рис. 8.12. Заміна двох послідовно з'єднаних мікрооперацій на один елемент затримки
а), к ліній на к-входовий елемент АБО Ь), та умовну вершину на два елементи 1с)

На рис. 8.13а п о к а з а н о ф р а г м е н т т и п о в о ї блок-схеми, що з а д а є сигнали к е р у в а н н я ,


які п о т р і б н о с ф о р м у в а т и в п о с л і д о в н и х тактах, а на р и с .8.13Ь п о к а з а н о відповідний їй
фрагмент схеми п р и с т р о ю к е р у в а н н я , о т р и м а н и й з а в и щ е о п и с а н и м и п р а в и л а м и .

Тригер

Тригер

1_£Г

Рис. 8.13. Фра гмент блок-схеми, яка задає сигнали керування а), та відповідний
їй фрагмент схеми пристрою керування Ь)

Не дивлячись на простоту описаного методу проектування пристрою керування на


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

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

8.2.5. Пристрій керування на основі лічильників


В основу методу побудови п р и с т р о ю к е р у в а н н я на основі л і ч и л ь н и к і в п о к л а д е н о ча­
сову діаграму р о б о т и к о м п ' ю т е р а , я к а в і д о б р а ж а є з м і н у в часі к о ж н о г о сигналу к е р у в а н ­
ня. В якості п р и к л а д у на рис. 8.14 н а в е д е н о ф р а г м е н т часової діаграми р о б о т и к о м п ' ю т е ­
ра, де ТІ - тактові імпульси, які п о с т у п а ю т ь з блоку с и н х р о і м п у л ь с і в (рис. 8.2), С 1 - С 5
- частина сигналів к е р у в а н н я , які м а ю т ь бути в и р о б л е н і п р и с т р о є м к е р у в а н н я .
296

гі_ги~иг
С1

П
сз г и и 1

л _ г и 1_Г
С5 п п
Рис. 8.14. Фрагмент часової діаграми роботи комп'ютера

О с н о в н и м е л е м е н т о м п р и с т р о ю к е р у в а н н я на основі л і ч и л ь н и к і в є л і ч и л ь н и к за мо­
дулем к, виходи я к о г о з'єднані з д е ш и ф р а т о р о м (рис. 8.15а).

Л І Ч И Л Ь Н И К за Т!_
Кінець модулем к

1 +- і
і-* Дешифратор
« п
СКИД
Дозвіл
Рк


Р1 Р2

Рис. 8.15. Генератор послідовності одноімпульсних сигналів


а) та часова діаграма сигналів на його виході Ь)

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


нок від н у л ь о в о г о до к-го імпульсу, після чого ц и к л п о в т о р ю є т ь с я . В результаті на ви­
ході д е ш и ф р а т о р а буде ф о р м у в а т и с я послідовність о д н о і м п у л ь с н и х сигналів Б1, ¥2,...,
¥к, ч а с о в а діаграма я к и х наведена на рис. 8.15Ь. К о ж н и й з ц и х сигналів має одиничне
з н а ч е н н я л и ш е п р о т я г о м одного т а к т о в о г о періоду. Тим с а м и м , час одного ц и к л у ро­
б о т и л і ч и л ь н и к а поділено на к р і в н и х ч а с т и н . Два д о д а т к о в и х вхідних сигнали початку
та кінця роботи та тригер т и п у з а б е з п е ч у ю т ь ф о р м у в а н н я сигналів д о з в о л у роботи
л і ч и л ь н и к а та й о г о скиду. Н а з в е м о схему, п р е д с т а в л е н у на рис. 8.15а, генератором по­
слідовності о д н о і м п у л ь с н и х сигналів ( Г П О С ) . Тоді б а з о в а ч а с т и н а схеми п р и с т р о ю ке­
р у в а н н я на основі л і ч и л ь н и к а буде мати вигляд, п о к а з а н и й на рис. 8.16.

Кінець
Комбінаційна
Скид Сигнали
схема
керування

Код стану
програми

Рис. 8.16. Схема пристрою керування на основі лічильника


297

К о ж н и й сигнал Б. (і = 1,2,..к) на виході г е н е р а т о р а послідовності о д н о і м п у л ь с н и х сиг­


налів Г П О С активізує д е я к и й набір сигналів к е р у в а н н я на виході к о м б і н а ц і й н о ї схеми
в к о ж н о м у такті в и к о н а н н я к о м а н д и к о м п ' ю т е р о м , з в р а х у в а н н я м коду с т а н у п р о г р а м и .
Доцільність в и к о р и с т а н н я л і ч и л ь н и к а з а м о д у л е м п о я с н ю є т ь с я ц и к л і ч н о ю п р и р о д о ю
сигналів к е р у в а н н я в у з л а м и к о м п ' ю т е р а , що н е о д н о р а з о в о було п о к а з а н о в попередніх
розділах.
П о т р і б н о відзначити, що л і ч и л ь н и к за м о д у л е м к м о ж е бути в и к о р и с т а н и й і в схемі
пристрою к е р у в а н н я на основі с и н х р о н н и х елементів часової з а т р и м к и в з а м і н к послі­
довно з ' є д н а н и х тригерів, так само як к п о с л і д о в н о з ' є д н а н и х тригерів м о ж у т ь з а м і н и т и
лічильник за модулем к та д е ш и ф р а т о р у в и щ е наведеній схемі (рис. 8.15).

8.3. Пристрій мікропрограмного керування

8.3.1. Організація роботи пристрою мікропрограмного керування


П р и с т р і й м і к р о п р о г р а м н о г о к е р у в а н н я в и р о б л я є послідовність сигналів, необхід­
них для в и к о н а н н я п р о г р а м и в к о м п ' ю т е р і . П р о г р а м а складається з деякої послідовності
команд. Команда в к о м п ' ю т е р і в и к о н у є т ь с я за о д и н а б о за декілька тактів, в к о ж н о м у із
яких в и к о н у є т ь с я одна а б о декілька м і к р о о п е р а ц і й . К о ж н а м і к р о о п е р а ц і я п р е д с т а в л я є
собою деяку е л е м е н т а р н у дію передачі а б о п е р е т в о р е н н я і н ф о р м а ц і ї , я к а ініціюється п о ­
ступленням керуючого сигналу ( м і к р о н а к а з у ) на вхід к е р у в а н н я в і д п о в і д н о г о п р и с т р о ю .
Послідовність е л е м е н т а р н и х м і к р о н а к а з і в , я к і п р и с т р і й к е р у в а н н я ф о р м у є в о д н о м у
такті, н а з и в а ю т ь м і к р о к о м а н д о ю . П о с л і д о в н і с т ь м і к р о к о м а н д , щ о н е о б х і д н о в и к о н а т и
для в и к о н а н н я однієї к о м а н д и , н а з и в а ю т ь с я м і к р о п р о г р а м о ю . З в и ч а й н о , м і к р о п р о г р а м а
може складатися і л и ш е з однієї м і к р о к о м а н д и .
О с н о в н и м и п р и н ц и п а м и , я к і покладені в о с н о в у п о б у д о в и п р и с т р о ю м і к р о п р о г р а м ­
ного к е р у в а н н я , є наступні:
1. Всі м і к р о н а к а з и , я к і п о в и н н і бути в и к о н а н і в о д н о м у такті р о б о т и комп'ютера,
збираються в одне керуюче слово, яке н а з и в а ю т ь м і к р о к о м а н д о ю .
2. Кожній команді з системи к о м а н д к о м п ' ю т е р а с т а в и т ь с я у відповідність послідов­
ність м і к р о к о м а н д , необхідних д л я ї ї в и к о н а н н я , т о б т о м і к р о п р о г р а м а в и к о н а н н я к о ­
манди в комп'ютері.
3. Всі м і к р о к о м а н д и зберігаються в п а м ' я т і . Це м о ж е бути о с н о в н а п а м ' я т ь к о м п ' ю т е ­
ра, але в більшості к о м п ' ю т е р і в для з б е р і г а н н я м і к р о к о м а н д в и к о р и с т о в у є т ь с я о к р е м а
пам'ять, я к у н а з и в а ю т ь п а м ' я т т ю м і к р о к о м а н д .
4. Для реалізації деякої к о м а н д и необхідно з ч и т а т и з п а м ' я т і м і к р о к о м а н д відповідну
послідовність м і к р о к о м а н д ( м і к р о п р о г р а м у ) та подати р о з п о д і л е н у в часі послідовність
керуючих сигналів на відповідні керуючі входи вузлів комп'ютера.
На рис. 8.17 п о к а з а н о о с н о в н и й елемент п р и с т р о ю м і к р о п р о г р а м н о г о к е р у в а н н я -
пам'ять м і к р о к о м а н д , та вузли на її входах і виходах, а саме м і к р о п р о г р а м н и й л і ч и л ь н и к
(МКПЛ) для з б е р і г а н н я адреси м і к р о к о м а н д и та регістр м і к р о к о м а н д и ( Р г М К ) .
298

мкпл

I
Пам'ять
мікрокомапд

і
Адреса наступної Код Код РгМК
мікрокоманди УМОВ мікрпомі-раіні

Рис. 8.17. Пам'ять макрокоманд з регістром адреси мікрокоманди на вході


та регістром мікрокоманди на виході

На рис. 8.17 п о к а з а н о і ф о р м а т самої м і к р о к о м а н д и , . д о складу якої входять наступні


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

Пам'ять адрес
перших мікрокоманд
мікрокодів
роботи
+1

Контролер
11.1.1 н гь М К ІН>С.1І.ШВ П І К ] і
макрокоманд

АНМК К> КМКО

КС форму на
мин переходу

Код стану Сигнали керування


програми (мікронакази)

Рис. 8.18. Структура пристрою мікропрограмного керування

В регістрі к о м а н д и РгК зберігається к о м а н д а , я к а підлягає в и к о н а н н ю в комп'ютері.


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

та для о б р о б к и п е р е р и в а н ь . В схемі ф о р м у в а н н я адреси СФА, до с к л а д у якої входять


п а м ' я т ь адрес п е р ш и х м і к р о к о м а н д мікрокодів, с у м а т о р - м у л ь т и п л е к с о р С М - М П , м і к р о -
п р о г р а м н и й л і ч и л ь н и к М К П Л т а к о м б і н а ц і й н а схема К С ф о р м у в а н н я переходу, в и з н а ­
чається адреса к о м і р к и пам'яті м і к р о к о м а н д , в якій з н а х о д и т ь с я н а с т у п н а м і к р о к о м а н -
да. Ця адреса ф о р м у є т ь с я з в р а х у в а н н я м полів адреси н а с т у п н о ї м і к р о к о м а н д и А Н М К
та коду умови з регістра м і к р о к о м а н д и , а т а к о ж сигналів стану, які п о с т у п а ю т ь з регі­
стра слова стану п р о г р а м и . М і к р о к о м а н д а з ч и т у є т ь с я із п а м ' я т і в регістр м і к р о к о м а н д и
РгМК, в я к о м у вона зберігається п р о т я г о м одного т а к т у р о б о т и к о м п ' ю т е р а . На о с н о ­
ві коду м і к р о о п е р а ц і ї К М К О з регістра м і к р о о п е р а ц і ї на виході д е ш и ф р а т о р а Д Ш М К О
ф о р м у ю т ь с я сигнали к е р у в а н н я .
Робота к о м п о н е н т а п р и с т р о ю к е р у в а н н я с и н х р о н і з у є т ь с я з к о н т р о л е р а п о с л і д о в н о с ­
ті м і к р о к о м а н д , я к и й о т р и м у є ззовні тактові імпульси з генератора т а к т о в и х імпульсів,
а т а к о ж код р е ж и м у р о б о т и к о м п ' ю т е р а . К о н т р о л е р послідовності м і к р о к о м а н д є я д р о м
п р и с т р о ю к е р у в а н н я . Він м а є д в а о к р е м и х р е ж и м и р о б о т и : з в и ч а й н и й р е ж и м т а р е ж и м
запуску комп'ютера.
В з в и ч а й н о м у р е ж и м і к о н т р о л е р послідовності м і к р о к о м а н д генерує сигнали керу­
в а н н я р о б о т о ю п р и с т р о ю к е р у в а н н я . Тактові імпульси на й о г о вході з а б е з п е ч у ю т ь його
часову синхронізацію, що д о з в о л я є генерувати н а с т у п н і п о с л і д о в н о с т і сигналів:
1. К е р у в а н н я п р о ц е с о м ф о р м у в а н н я адреси м і к р о к о м а н д и . Ця адреса о д е р ж у є т ь с я
шляхом:
• з а п и с у в м і к р о п р о г р а м н и й л і ч и л ь н и к М К П Л а д р е с и п е р ш о ї м і к р о к о м а н д и мі-
к р о п р о г р а м и в и к о н а н н я відповідної к о м а н д и з п а м ' я т і адрес п е р ш и х м і к р о к о м а н д мі­
крокодів;
• запису в мікропрограмний лічильник М К П Л адреси наступної мікрокоманди
м і к р о п р о г р а м и в и к о н а н н я відповідної к о м а н д и після в и к о н а н н я в с у м а т о р і - м у л ь т и -
плексорі С М - М П операції п р и р о с т у вмісту М К П Л на 1;
• запису в мікропрограмний лічильник М К П Л адреси наступної мікрокоманди
А Н М К з адресного поля РгМК, з в р а х у в а н н я м коду у м о в и КУ з п о л я у м о в н о г о переходу
РгМК, та коду стану п р о г р а м и з регістра слова стану п р о г р а м и , що здійснюється в к о м ­
бінаційній схемі КС ф о р м у в а н н я переходу.
К е р у в а н н я з ч и т у в а н н я м м і к р о к о м а н д з п а м ' я т і м і к р о к о м а н д за а д р е с а м и з м і к р о -
п р о г р а м н о г о л і ч и л ь н и к а М К П Л та їх з а п и с о м до регістра м і к р о к о м а н д РгК.
С т и м у л ю в а н н я д е ш и ф р а т о р а м і к р о о п е р а ц і й Д Ш М К О , я к и й здійснює д е ш и ф р у в а н ­
ня коду мікрооперації К М К О з відповідного поля Р г М К , та в и д а є сигнали к е р у в а н н я
(мікронакази).
К о ж н а к о м а н д а п р о ц е с о р а ініціює в и к о н а н н я відповідної м і к р о п р о г р а м и . Коли п р и ­
стрій к е р у в а н н я з а к і н ч у є в и к о н а н н я м і к р о п р о г р а м и однієї к о м а н д и к о м п ' ю т е р а , п р о щ о
його к о н т р о л е р послідовності м і к р о к о м а н д і н ф о р м у є т ь с я с и г н а л о м з в и х о д у д е ш и ф р а ­
тора м і к р о о п е р а ц і й Д Ш М К О , він в и б и р а є з о с н о в н о ї п а м ' я т і н а с т у п н у команду, та за­
писує її в регістр к о м а н д и РгК с и г н а л о м з в и х о д у д е ш и ф р а т о р а м і к р о о п е р а ц і й Д Ш М К О ,
після чого п р и с т у п а є до її в и к о н а н н я ш л я х о м з ч и т у в а н н я з п а м ' я т і м і к р о к о м а н д н а с т у п ­
ної м і к р о п р о г р а м и .
В ході в и к о н а н н я різних к о м а н д м о ж у т ь в и к о р и с т о в у в а т и с я загальні д і л я н к и м і к р о -
програм, які н а з и в а ю т ь с я м і к р о п і д п р о г р а м а м и .
300

В р е ж и м і запуску к о м п ' ю т е р а п р и с т р і й к е р у в а н н я в с т а н о в л ю є вміст різних регістрів


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

8.3.2. Організація мікропрограм в пам'яті мікрокоманд


Є багато шляхів м о ж л и в о ї організації м і к р о п р о г р а м в пам'яті м і к р о к о м а н д . Один з
них, і л ю с т р о в а н и й на рис. 8.23, передбачає р о з м і щ е н н я м і к р о к о м а н д в пам'яті послідов­
но. К о ж н а м а ш и н н а к о м а н д а м а є свою власну послідовність м і к р о к о м а н д в пам'яті мі­
к р о к о м а н д . Додатково п а м ' я т ь м і к р о к о м а н д містить м і к р о к о м а н д и для проведення ви­
бірки к о м а н д з о с н о в н о ї п а м ' я т і , з а п у с к у п е р е р и в а н н я , та д е я к и х і н ш и х дій керування.
Р о з г л я н е м о цей т и п організації м і к р о п р о г р а м в п а м ' я т і м і к р о к о м а н д . Після того, як
п р и с т р і й к е р у в а н н я в и б и р а є м а ш и н н у к о м а н д у з о с н о в н о ї п а м ' я т і і р о з м і щ у є її в регістрі
к о м а н д и РгК, він п о в и н е н генерувати так з в а н у адресу т о ч к и входу д л я коду операції ко­
м а н д и КОГІ, я к а є а д р е с о ю п е р ш о ї м і к р о к о м а н д и м і к р о п р о г р а м и . Н а п р и к л а д , я к щ о при­
стрій к е р у в а н н я в и б и р а є м і к р о к о м а н д у д л я коду операції К О П І , він повинен генерувати
а д р е с у АІ, як п о к а з а н о на рис. 8.19. Ф о р м у в а н н я адреси т о ч к и входу є задачею пам'яті
адрес п е р ш и х м і к р о к о м а н д м і к р о к о д і в блоку о б ч и с л е н н я адреси (рис. 8.18). Після того,
я к п р и с т р і й к е р у в а н н я ф о р м у є адресу т о ч к и входу, к о н т р о л е р послідовності мікроко­
м а н д з б і л ь ш у є вміст м і к р о п р о г р а м н о г о л і ч и л ь н и к а М К П Л , щ о б одержати адресу кожної
наступної мікрокоманди.

П а м ' я т ь мікропрограм

Мікропрограма для КОП1

Мікропрограма для КОП2

Мікропрограма для КОПп

Мікропрограма для вибірки команди

Мікропрограма для запуску переривання

інші мікропрограми

Рис. 8.19. Розміщення мікрокоманд послідовно в пам'яті


301

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


в и к о н а н н я однієї м а ш и н н о ї к о м а н д и ) , к о н т р о л е р п о с л і д о в н о с т і м і к р о к о м а н д п о в и н е н
ще раз в и к о н у в а т и м і к р о п р о г р а м у в и б і р к и н а с т у п н о ї к о м а н д и з о с н о в н о ї пам'яті. На
рис. 8.19 це є перехід до к о м і р к и А п а м ' я т і м і к р о к о м а н д . П о с т а є п и т а н н я - як м о ж е
в к

к о н т р о л е р послідовності м і к р о к о м а н д керувати р о з г а л у ж е н н я м и в м е ж а х м і к р о п р о г р а м
пам'яті м і к р о к о м а н д ? На рис. 8.18 п о к а з а н о о д и н з варіантів в и р і ш е н н я ц ь о г о з а в д а н н я .
Д о ц и х пір м и р о з г л я д а л и м і к р о п р о г р а м и без р о з г а л у ж е н ь . О д н а к існують м і к р о к о м а н ­
ди переходу, які м і с т я т ь адресу переходу та м і к р о н а к а з и д л я схеми ф о р м у в а н н я адреси
СФА додатково до м і к р о н а к а з і в д л я і н ш и х вузлів к о м п ' ю т е р а . К о н т р о л е р послідовності
м і к р о к о м а н д р а з о м з схемою ф о р м у в а н н я а д р е с и СФА, в и к о р и с т о в у є адресу н а с т у п н о ї
м і к р о к о м а н д и ( А Н М К ) та код у м о в и переходу (КУ) д л я в и з н а ч е н н я адреси н а с т у п н о ї
мікрокоманди.
Для к е р у в а н н я п е р е х о д о м в коді м і к р о о п е р а ц і ї К М К О к о ж н о ї м і к р о к о м а н д и н а я в н а
і н ф о р м а ц і я п р о н а л е ж н і с т ь цієї м і к р о к о м а н д и до м і к р о к о м а н д переходу. Тому в к о ж н о ­
м у такті н а виході д е ш и ф р а т о р а м і к р о к о м а н д Д Ш М К О генерується м і к р о н а к а з , я к и й ін­
ф о р м у є к о н т р о л е р п о с л і д о в н о с т і м і к р о к о м а н д п р о н а л е ж н і с т ь , а б о неналежність, даної
м і к р о к о м а н д и до м і к р о к о м а н д переходу. Я к щ о це м і к р о к о м а н д а переходу, то к о н т р о л е р
послідовності м і к р о к о м а н д п о в і д о м л я є схему ф о р м у в а н н я адрес п р о необхідність ф о р ­
м у в а н н я адреси переходу, а не приріст на о д и н и ц ю в м і с т у м і к р о п р о г р а м н о г о л і ч и л ь н и к а
М К П Л . П р и цьому, я к щ о це б е з у м о в н и й перехід, то перехід в і д б у в а є т ь с я за адресою з
адресного поля м і к р о к о м а н д и . Я к щ о ж це у м о в н и й перехід, то адреса н а с т у п н о ї м і к р о ­
команди ф о р м у є т ь с я з в р а х у в а н н я м коду у м о в переходу та коду стану п р о г р а м и , я к и й
поступає з регістра с т а н у п р о г р а м и регістрової п а м ' я т і п р о ц е с о р а .

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


З а в д а н н я в и б о р у ф о р м а т у м і к р о к о м а н д и є д о с и т ь с к л а д н и м . З одного боку, м і к р о ­
команда п о в и н н а в м і щ у в а т и коди к е р у в а н н я в у з л а м и к о м п ' ю т е р а , з а б е з п е ч у в а т и органі­
зацію послідовності м і к р о к о м а н д в м і к р о п р о г р а м у та м о ж л и в і с т ь зміни п о р я д к у м і к р о ­
команд в м і к р о п р о г р а м і . З і н ш о г о боку, ці ф у н к ц і ї п о в и ь н і в и к о н у в а т и с ь з м і н і м а л ь н о ю
кількістю бітів в м і к р о к о м а н д і , з м і н і м а л ь н о ю кількістю слів в п а м ' я т і м і к р о к о м а н д , та
з м і н і м а л ь н и м ч а с о м на в и к о н а н н я м і к р о п р о г р а м и . Р о з г л я н е м о деякі п и т а н н я в и б о р у
ефективного формату мікрокоманди.
За с п о с о б о м ф о р м у в а н н я к е р у ю ч и х сигналів р о з р і з н я ю т ь г о р и з о н т а л ь н е і в е р т и ­
кальне м і к р о п р о г р а м у в а н н я .
П р и в и к о р и с т а н н і г о р и з о н т а л ь н о г о м і к р о п р о г р а м у в а н н я к о ж н и й р о з р я д п о л я коду
мікрооперації м і к р о к о м а н д и ф о р м у є о д и н к е р у ю ч и й сигнал (мікронаказ) для відповід­
ного входу к е р у в а н н я ф у н к ц і о н а л ь н о г о вузла к о м п ' ю т е р а (рис. 8.20). Кількість р о з р я д і в
м і к р о к о м а н д и в и з н а ч а є т ь с я з в и р а з у М = п+к+пт, де п - р о з р я д н і с т ь а д р е с и м і к р о к о м а н ­
ди, яка рівна п = к ^ М , де N - К І Л Ь К І С Т Ь м і к р о к о м а н д в пам'яті, к - КІЛЬКІСТЬ м і к р о н а к а ­
2

зів, необхідних для к е р у в а н н я вузлами п р и с т р о ю к е р у в а н н я , т - КІЛЬКІСТЬ м і к р о н а к а з і в ,


необхідних для к е р у в а н н я вузлами к о м п ' ю т е р а . В ц ь о м у в и п а д к у відпадає п о т р е б а в де­
шифраторі мікрокоманд.
302

Адреса наступної Мікронакази для Мікронакази для входів


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

п-1 • • • 1 0 к-1 1 0 пя-1 • • • 1 0

Рис. 8.20. Формат мікрокоманди при використанні горизонтального мікропрограмування

О С К І Л Ь К И у к о м п ' ю т е р а х кількість м і к р о н а к а з і в м о ж е досягати декількох сотень, мі-


к р о к о м а н д а в ц ь о м у в и п а д к у стає д у ж е ш и р о к о ю .
Кількість к е р у ю ч и х бітів м і к р о к о м а н д и з м е н ш у ю т ь в и к о р и с т о в у ю ч и наступні спо­
соби:
• Г р у п у в а н н я м бітів. В г р у п и о б ' є д н у ю т ь с я такі м і к р о н а к а з и , які з а в ж д и викону­
ються о д н о ч а с н о . П р и ц ь о м у для г р у п и в и д і л я є т ь с я л и ш е один біт.
• Групування ф о р м а т і в . В групи о б ' є д н у ю т ь с я такі м і к р о н а к а з и , з я к и х в даному так­
ті в и к о н у є т ь с я тільки один. Ці м і к р о н а к а з и кодуються в полі, де кількість бітів к = log L, 2

де Ь - кількість м і к р о н а к а з і в .
• Групування м і к р о н а к а з і в . Групі м і к р о н а к а з і в в и д і л я є т ь с я один біт мікрокоманди
та в и к о р и с т о в у є т ь с я б а г а т о т а к т о в а с и н х р о н і з а ц і я .
П р и в и к о р и с т а н н і в е р т и к а л ь н о г о м і к р о п р о г р а м у в а н н я м і к р о к о м а н д а складається з
полів коду мікрооперації, коду у м о в переходу і адреси наступної м і к р о к о м а н д и , як це
було р о з г л я н у т о р а н і ш е (рис. 8.17). Тобто ф о р м а т м і к р о к о м а н д и подібний до форма­
ту к о м а н д и к о м п ' ю т е р а . Цей м е т о д д о з в о л я є більш е ф е к т и в н о в и к о р и с т о в у в а т и поля
м і к р о к о м а н д и , т о б т о к о м а н д а є к о р о т ш о ю , а о б ' є м пам'яті м е н ш и м , п о р і в н я н о з гори­
зонтальним мікропрограмуванням. Разом з тим, горизонтальне мікропрограмування є
швидшим, оскільки не вимагає використання дешифраторів.

8.4. Порівняння пристроїв керування з жорсткою логікою


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

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

8.5. Короткий зміст розділу

П р и с т р і й к е р у в а н н я є о д н и м з в у з л і в п р о ц е с о р а . Відомі д в а о с н о в н и х м е т о д и п о -
удови п р и с т р о ї в к е р у в а н н я : п р и с т р о ї к е р у в а н н я з ж о р с т к о ю л о г і к о ю т а п р и с т р о ї
ікропрограмного керування. В комп'ютері, крім пристрою керування центрального
процесора, м о ж у т ь в и к о р и с т о в у в а т и с ь п р и с т р о ї к е р у в а н н я в у з л а м и к о м п ' ю т е р а , на­
приклад, п р и с т р о ї к е р у в а н н я о п е р а ц і й н и м и п р и с т р о я м и А Л П , п р и с т р і й к е р у в а н н я
процесора в в е д е н н я - в и в е д е н н я і т. д. П р и н ц и п и п о б у д о в и в к а з а н и х п р и с т р о ї в є іден­
тичними.
Р о з г л я н у т о с т р у к т у р у та о р г а н і з а ц і ю р о б о т и п р и с т р о ю к е р у в а н н я з ж о р с т к о ю логі­
кою, а т а к о ж м е т о д и п р о е к т у в а н н я п р и с т р о ї в к е р у в а н н я з ж о р с т к о ю логікою: на основі
таблиць станів, на основі т а к т о в а н и х елементів часової з а т р и м к и , та на о с н о в і л і ч и л ь ­
ників.
Метод т а б л и ц ь станів передбачає р о з г л я д п р и с т р о ю к е р у в а н н я я к ц и ф р о в о г о авто­
мату. Ц и ф р о в и й автомат подано у вигляді його м а т е м а т и ч н о ї ( а б с т р а к т н о ї ) і с т р у к т у р н о ї
моделей, які відповідно н а з и в а ю т ь с я а б с т р а к т н и м та с т р у к т у р н и м а в т о м а т а м и . А б с т р а к ­
тну модель в и к о р и с т а н о на п е р ш о м у етапі п р о е к т у в а н н я , коли о п и с у є т ь с я ф у н к ц і о н у ­
вання автомату, тобто правила п е р е р о б к и вхідної і н ф о р м а ц і ї у вихідну. На ц ь о м у етапі
автомат п о д а н о у вигляді автоматів Мілі, М у р а та С-автомату. Слід з а у в а ж и т и , що р о з ­
гляд абстрактної моделі ц и ф р о в о г о а в т о м а т у д о з в о л я є п р о в о д и т и й о г о п о п е р е д н ю о п т и -
мізацію ще до етапу с т р у к т у р н о г о синтезу. П о к а з а н о п р и к л а д з а с т о с у в а н н я с т р у к т у р н о ї
моделі для побудови схеми ц и ф р о в о г о автомату.
О п и с а н о основні засади п р о е к т у в а н н я п р и с т р о ї в к е р у в а н н я з ж о р с т к о ю логікою на
основі с и н х р о н н и х елементів часової з а т р и м к и та на основі л і ч и л ь н и к і в . Відзначено, що
вихідними д а н и м и для такого п р о е к т у в а н н я є часові зміни сигналів к е р у в а н н я , о т р и м а ­
ні з часової діаграми р о б о т и комп'ютера.
О п и с а н а р о б о т а п р и с т р о ю м і к р о п р о г р а м н о г о к е р у в а н н я . Наведені о с н о в н і п о н я т ­
тя м і к р о п р о г р а м у в а н н я : м і к р о н а к а з , м і к р о к о м а н д а , м і к р о п р о г р а м а , г о р и з о н т а л ь н е та
вертикальне м і к р о п р о г р а м у в а н н я . С ф о р м о в а н і п р и н ц и п и , п о к л а д е н і в основу п о б у д о в и
пристрою м і к р о п р о г р а м н о г о к е р у в а н н я , серед я к и х в п е р ш у чергу н е о б х і д н о відзначити
те, що кожній команді з системи к о м а н д к о м п ' ю т е р а с т а в и т ь с я у відповідність м і к р о п р о ­
грама її в и к о н а н н я в комп'ютері, всі м і к р о к о м а н д и зберігаються в п а м ' я т і м і к р о к о м а н д ,
304

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


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

8.6. Література для подальшого читання


До п е р ш и х публікацій з п и т а н ь п р о е к т у в а н н я п р и с т р о ю к е р у в а н н я комп'ютера на
основі ц и ф р о в и х а в т о м а т і в Мілі, М у р а , С-автомату, а т а к о ж п р и н ц и п и побудови при­
строїв м і к р о п р о г р а м н о г о к е р у в а н н я н а л е ж а т ь п р а ц і [5-9]. Серед п е р ш и х книг з питань
синтезу ц и ф р о в и х автоматів н е о б х і д н о в и д і л и т и к н и г у [3]. Ц ь о м у ж п и т а н н ю присвяче­
на і книга [17]. П о б у д о в а п р и с т р о ї в к е р у в а н н я на основі с и н х р о н н и х елементів часової
з а т р и м к и та л і ч и л ь н и к і в о п и с а н а в р о б о т і [10]. З п и т а н ь о п т и м і з а ц і ї мікропрограм до­
ц і л ь н о п о ч и т а т и р о б о т и [11-13], а в р о б о т а х [14-16] описані основні п р и н ц и п и мікро-
програмування.

8.7. Література до розділу 8


1. Лазарев В. Г., Пийль Е. И. Синтез управляющих автоматов. - М.: Энергия, 1978. - 408 с.
2. Баранов С. И. Синтез микропрограммных автоматов. - Л.: Энергия, 1974. - 215 с.
3. Глушков В. М. Синтез цифровых автоматов. - М.: Физматгиз, 1962. - 476 с.
4. Huffman D. A. The synthesis of sequential switching circuits. 1954, vol. 257, № 3, p. 161-190; №
4. p. 275-303.
5. Kochen M. Extension of moore-shannon model for relay circuits. - "IBM Journ. Res. and Devel.",
1959, vol. 3, № 2, p. 169-186.
6. Mealy G. H. A method for synthesizing sequential circuits. - "BSTJ", 1955, vol. 34, № 5, p. 1045-
1079.
7. Wilkes M. V., Stringer J. B. Microprogramming and the design of the control circuits in an electro­
nic digital computer. - "Proc. Cambridge Philos. Soc". 1953, vol. 49, № 4, p. 230.
8. Wilkes M. V. Microprogramming. - "Proc. East. Joint Corn-put. Conf.", 1959, vol. NT-114, № 7.
p. 18-20.
9. Wilkes M. V., Renwick W, Wheeler D. J. The design of the control unit of an electronic digital
computer. - "Proc. of the Inst of El. Eng.", pt. B, 1958, vol. 105, № 20, 121 p.
10. Hayes J.P. Computer Architecture and Organization. McGRAW-Hill, 1988.
11. Agerwala, Т.: "Microprogram Optimization: A Survey", IEEE Trans. Comput., vol. C-25, pp. 962-
973, October 1976.
12. Das, S. R., D. K. Banerji, and A. Chattopadhyay: "On Control Memory Minimization in Microp­
rogrammed Computers", IEEE Trans. Comput., vol. C-23, pp. 845-848, September 1973.
13. Davidson, S., et al.: "Some Experiments in Local Microcode Compaction for Horizontal Machi­
nes", IEEE Trans. Comput., vol. C-30, pp. 4«M77, July 1981.
305

14. Agrawala, A. K., and T. G. Rauscher: Foundations of Microprogramming: Architecture, Software,


and Applications, Academic, New York, 1976.
15. Andrews, M . : Principles of Firmware Engineering in Microprogram Control, Computer Science
Press, Potomac, Md., 1980.
16. Husson, S. S.: Microprogramming: Principles and Practices, Prentice-Hall, Englewood Cliffs,
N.J., 1970.
17. Kohavi, Z., Switching and Finite Automata Theory, 2d ed., McGraw-Hill, New York, 1978.

8.8. Питання до розділу 8


1. Призначення пристрою керування
2. Що таке мікрооперація?
3. Що таке мікронаказ?
4. Що таке макрокоманда?
5. Що таке мікропрограма?
6. Назвіть місце поступлення керуючих сигналів
7. Назвіть два основних методи побудови логіки формування керуючих сигналів
8. В чому заключається принцип керування "жорсткої" або "запаяної" логіки?
9. В чому заключається принцип мікропрограмного керування?
10. Наведіть типову структурну схему пристрою керування з жорсткою логікою та поясніть
її роботу
11. Для чого призначений блок синхроімпульсів?
12. Для чого призначений лічильник тактів?
13. Для чого призначені дешифратор коду операції та дешифратор тактів?
14. Назвіть методи проектування пристрою керування з жорсткою логікою
15. В чому заключається суть методу методом таблиць станів?
16. Що таке абстрактна та структурна моделі цифрового автомату?
17. Наведіть формальний опис абстрактного автомату
18. Опишіть автомат Мілі
19. Опишіть автомат Мура
20. Опишіть С-автомат
21. Опишіть таблицю переходів, таблицю виходів та таблицю з'єднань автомату Мілі
22. Опишіть таблицю переходів, таблицю виходів та таблицю з'єднань автомату Мура
23. Опишіть таблицю переходів, таблицю виходів та таблицю з'єднань С-автомату.
24. Як будується граф автомату Мілі?
25. Як будується граф автомату Мура?
26. Як будується граф С-автомату?
27. Поясніть етапи канонічного методу структурного синтезу цифрового автомату
28. Як використовують тактовані елементи часової затримки при побудові пристрою керу­
вання?
29. Як використовують лічильники при побудові пристрою керування?
30. Як будується часова діаграма роботи комп'ютера?
31. Які основні принципи покладені в основу побудови пристрою мікропрограмного керу­
вання?
32. Приведіть формат мікрокоманди
306

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


його роботи.
34. Які функції контролера послідовності мікрокоманд?
35. Як формується адреса мікрокоманди?
36. Як організовані мікропрограми в пам'яті мікрокоманд?
37. Що таке горизонтальне мікропрограмування?
38. Що таке вертикальне мікропрограмування?
39. Які є способи зменшення кількості керуючих бітів мікрокоманди при використанні гори­
зонтального мікропрограмування?
40. Порівняйте пристрої керування з жорсткою логікою та пристрої мікропрограмного керу­
вання.
Розділ 9

%(шітарШне&сі пам'шшу кжт'штера/


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

9.1. Типи та характеристики пам'яті комп'ютера

9.1.1. Багаторівнева структура пам'яті комп'ютера


П а м ' я т ь к о м п ' ю т е р а є багаторівневою. На р і з н и х р і в н я х в комп'ютері використову­
ються різні т и п и п а м ' я т і (рис. 9.1). П р а к т и ч н о к о ж е н ф у н к ц і о н а л ь н и й вузол комп'юте­
ра м а є у с в о є м у складі п а м ' я т ь . Так, в п р о ц е с о р і з н а х о д и т ь с я регістрова надоперативна
п а м ' я т ь , а т а к о ж п о с т і й н а п а м ' я т ь для з б е р і г а н н я м і к р о п р о г р а м , яка є складовою части­
ною п р и с т р о ю к е р у в а н н я , та п о с т і й н а п а м ' я т ь констант, я к а в и к о р и с т о в у є т ь с я в АЛП,
н а п р и к л а д , у складі т а б л и ч н и х або т а б л и ч н о - а л г о р и т м і ч н и х о п е р а ц і й н и х пристроїв. Між
п р о ц е с о р о м і о с н о в н о ю п а м ' я т т ю м о ж е б у т и в к л ю ч е н о кілька рівнів кеш пам'яті. Крім
о с н о в н о ї пам'яті, в к о м п ' ю т е р і є ще п а м ' я т ь п р о ц е с о р і в в в е д е н н я - в и в е д е н н я та з о в н і ш н я
п а м ' я т ь великого об'єму, р е а л і з о в а н а на м а г н і т н и х дисках, стрічках та барабанах, а та­
к о ж о п т и ч н а та флеш. Як в и д н о з рисунку, за місцем р о з т а ш у в а н н я п а м ' я т ь поділяють на
в н у т р і ш н ю і з о в н і ш н ю . Н а й б і л ь ш ш в и д к і с н у п а м ' я т ь , т о б т о к е ш - п а м ' я т ь першого рівня,
з а з в и ч а й р о з м і щ у ю т ь на о д н о м у кристалі з ц е н т р а л ь н и м п р о ц е с о р о м , в я к о м у є своя ре­
гістрова п а м ' я т ь . Д о в н у т р і ш н ь о ї п а м ' я т і н а л е ж а т ь т а к о ж о с н о в н а пам'ять, п а м ' я т ь п р о ­
ц е с о р а в в е д е н н я - в и в е д е н н я та кеш п а м ' я т ь другого і п о д а л ь ш и х рівнів (кеш п а м ' я т ь дру­
гого р і в н я м о ж е т а к о ж р о з м і щ у в а т и с я на кристалі п р о ц е с о р а ) . П о в і л ь н у п а м ' я т ь великої
є м н о с т і (магнітні й о п т и ч н і д и с к и , магнітні стрічки та б а р а б а н и ) н а з и в а ю т ь зовнішньою
п а м ' я т т ю , оскільки до я д р а к о м п ' ю т е р а ці п р и с т р о ї п і д к л ю ч а ю т ь с я аналогічно до при­
строїв в в е д е н н я - в и в е д е н н я .

АЛП ПЗП
Процесор Внутрішня
констант
пам'ять
Пристрій керування

ШП Регістрова
мікропрограм пам'ять

Кеш пам'ять

пам ять
Основна процесора
пам'ять введення-
виведення

Зовнішня
пам'ять
Ш на
магнітних Ї П на
барабанах магнітних
Ш на
дисках ЧП на
магнітних
стрічках оптичних
дисках

Рис. 9.1. Багаторівнева структура пам'яті комп'ютера

9.1.2. Типи пам'яті


В комп'ютері в и к о р и с т о в у ю т ь с я різні т и п и пам'яті, які, з а л е ж н о від способу доступу
д о інформації, м о ж у т ь б у т и к л а с и ф і к о в а н і н а с т у п н и м ч и н о м :
309

• П а м ' я т ь з д о в і л ь н и м д о с т у п о м . До цієї п а м ' я т і в к о ж н о м у такті м о ж е б у т и з а п и ­


сане число або з ч и т а н е з неї число за довільною а д р е с о ю . За п р и н ц и п о м п а м ' я т і з довіль­
ним д о с т у п о м п о б у д о в а н о р е г і с т р о в и й ф а й л регістрової п а м ' я т і п р о ц е с о р а та о с н о в н а
пам'ять.
• П а м ' я т ь із в п о р я д к о в а н и м д о с т у п о м . Із такої п а м ' я т і дані в и б и р а ю т ь с я в п о р я д ­
ку, я к и й в и з н а ч а є т ь с я в н у т р і ш н ь о ю с т р у к т у р о ю пам'яті. До такої п а м ' я т і н а л е ж и т ь з о ­
крема п а м ' я т ь з п о с л і д о в н и м д о с т у п о м , з якої дані з ч и т у ю т ь с я п о с л і д о в н о одне за о д н и м .
За п р и н ц и п о м пам'яті з послідовним д о с т у п о м побудовано, зокрема, буферну пам'ять,
яка використовується у пристроях введення-виведення, з о в н і ш н ю п а м ' я т ь на магнітних
стрічках.
• П а м ' я т ь з а с о ц і а т и в н и м д о с т у п о м . В такій п а м ' я т і дані ш у к а ю т ь с я за їх змістом
або за деякою їх о з н а к о ю . За п р и н ц и п о м п а м ' я т і з а с о ц і а т и в н и м д о с т у п о м п о б у д о в а н о ,
зокрема, кеш п а м ' я т ь .
Існує т а к о ж п а м ' я т ь з п р я м и м д о с т у п о м . К о ж е н з а п и с м а є у н і к а л ь н у адресу, що відо­
бражає її ф і з и ч н е р о з м і щ е н н я на носії інформації. З в е р н е н н я з д і й с н ю є т ь с я як а д р е с н и й
доступ до п о ч а т к у з а п и с у з п о д а л ь ш и м п о с л і д о в н и м д о с т у п о м до певної о д и н и ц і і н ф о р ­
мації усередині запису. В результаті час д о с т у п у до певної позиції є в е л и ч и н о ю з м і н н о ю .
Такий р е ж и м х а р а к т е р н и й для м а г н і т н и х дисків.
Цей список м о ж е бути р о з ш и р е н и й і н ш и м и т и п а м и пам'яті, які щ е н е з н а й ш л и ш и р о ­
кого з а с т о с у в а н н я в комп'ютері, н а п р и к л а д , п а м ' я т т ю з п р о г р а м о в а н и м д о с т у п о м , коли
записані до п а м ' я т і дані з ч и т у ю т ь с я в н а п е р е д з а д а н о м у порядку. К о ж н и й т и п п а м ' я т і
має свої переваги та недоліки, які в и з н а ч а ю т ь місце в и к о р и с т а н н я відповідної п а м ' я т і в
комп'ютері. Р о з г л я н е м о організацію р о б о т и т а п р о в е д е м о аналіз н а з в а н и х т и п і в п а м ' я т і
детальніше.
Найчастіше в комп'ютері в и к о р и с т о в у є т ь с я п а м ' я т ь з д о в і л ь н и м д о с т у п о м а б о адрес­
на пам'ять. Ця п а м ' я т ь ділиться на два т и п и : о п е р а т и в н и й з а п а м ' я т о в у ю ч и й п р и с т р і й
(ОЗП), англійський термін Random Access M e m o r y ( R A M ) , та п о с т і й н и й з а п а м ' я т о в у ю ­
чий пристрій ( П З П ) , англійський термін Read O n l y M e m o r y ( R O M ) .
П а м ' я т ь із д о в і л ь н и м д о с т у п о м складається з комірок, к о ж н а з я к и х зберігає о д и н и ­
цю інформації, яка н а з и в а є т ь с я словом. С л о в а с к л а д а ю т ь с я із бітів із з н а ч е н н я м и 0 або 1.
В слові є п бітів, де п - д о в ж и н а слова. Кожен біт м а є свій н о м е р . Н у м е р а ц і я бітів в слові
здійснюється с п р а в а - н а л і в о , а б о з л і в а - н а п р а в о . З а з в и ч а й слово м а є д о в ж и н у п = 2 к, де к
= 0,1,2,... біт, н а п р и к л а д 8 (к = 3), 32 (к = 5) і т. д.
Комірки п а м ' я т і н у м е р у ю т ь с я , т о б т о к о ж н а з н и х м а є свій н о м е р , а б о адресу. Ту ж саму
адресу має і слово, яке зберігається в даній комірці. М і с ц е р о з м і щ е н н я слова в п а м ' я т і
називається а д р е с о ю слова. Я к щ о п а м ' я т ь м о ж е зберігати М слів р о з р я д н і с т ю п кожне,
то в якості адреси в и к о р и с т о в у ю т ь с я числа від 0 до М - 1 (рис. 9.2). М адрес є а д р е с н и м
полем ( п р о с т о р о м ) даного комп'ютера. В и к о р и с т о в у ю ч и двійкове к о д у в а н н я , необхідно
m бітів для п р е д с т а в л е н н я всіх адрес, де m =[log,M]. З н а ч е н н я в д у ж к а х о з н а ч а є більше
ціле. З а з в и ч а й п а м ' я т ь к о м п ' ю т е р а будується так, щ о б М було к р а т н и м с т у п е н ю двійки,
що д о з в о л я є е ф е к т и в н і ш е в и к о р и с т о в у в а т и р о з р я д н у сітку адреси, а т а к о ж с п р о щ у є о б ­
робку адрес. Існує п о н я т т я "організація пам'яті", яке вказує на р о з р я д н і с т ь к о м і р о к і їх
кількість в пам'яті, т о б т о n*2 . Це з н а ч е н н я в к а з у є т а к о ж ємність п а м ' я т і в бітах.
m
310

Адреса слова

О СЛОВО о

слово 1

п- 1 СЛОВО і

СЛОВО М-1
Рис. 9.2. Адресна пам'ять організацією п.2 т

П а м ' я т ь з д о в і л ь н и м д о с т у п о м в и к о н у є дві основні операції: вибірку Fetch (або зчиту­


в а н н я Read) і з а п а м ' я т о в у в а н н я Store (або з а п и с Write). Робота цієї пам'яті організована
н а с т у п н и м ч и н о м . В р е ж и м і з а п и с у на а д р е с н и й вхід пам'яті подається адреса комірки,
в я к у п о т р і б н о з а п и с а т и дане і с и г н а л о м з а п и с у це дане з а п и с у є т ь с я у вказану адресою
комірку пам'яті. В р е ж и м і з ч и т у в а н н я на а д р е с н и й вхід пам'яті подається адреса комір­
ки, з якої п о т р і б н о з ч и т а т и дане, і сигналом з ч и т у в а н н я це дане з ч и т у є т ь с я з вказаної
адресою к о м і р к и п а м ' я т і (рис. 9.3).
Вхідні Дані Адреса

Режим роботи Адреса Режим роботи


Адресна пам'ять Адресна пам'ять
1

Вихідні Дані
' Р Дані

а) Ь)
Рис. 9.3. Інтерфейс адресної пам'яті

І н т е р ф е й с адресної п а м ' я т і (рис. 9.3 а) в к л ю ч а є т - р о з р я д н у ш и н у адреси, п-розрядну


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

адреси. Розрядність адреси д о р і в н ю є т = [log к ] , де к - КІЛЬКІСТЬ регістрів. Як відомо,


2

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


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

Адреса запис/зчитування
Дані
шина шина
РгО
адреси даних
ДшА

Ргі
< щ
* * *

Рг(к-І)
^

Рис. 9.4. Стек програмно-доступних регістрів

В р е ж и м і з а п и с у і н ф о р м а ц і я з а п и с у є т ь с я л и ш е в в и б р а н и й д е ш и ф р а т о р о м адреси
ДшА регістр. А в р е ж и м і з ч и т у в а н н я на ш и н у д а н и х п о с т у п а є л и ш е і н ф о р м а ц і я з в и б р а ­
ного д е ш и ф р а т о р о м адреси Д ш А регістра. Виходи і н ш и х регістрів в цей час з н а х о д я т ь с я
в стані високого імпедансу.
З пам'яті з в п о р я д к о в а н и м д о с т у п о м дані в и б и р а ю т ь с я в порядку, я к и й в и з н а ч а є т ь с я
її в н у т р і ш н ь о ю с т р у к т у р о ю . П а м ' я т ь з в п о р я д к о в а н и м д о с т у п о м будується т а к и м ч и ­
ном, що дані в и б и р а ю т ь с я , а б о з а п и с у ю т ь с я , через в х і д н и й регістр, а п р а в и л о їх пере­
м і щ е н н я між комірками п а м ' я т і " з а ш и т е " в з в ' я з к а х м і ж н и м и .
До такої пам'яті н а л е ж и т ь з о к р е м а п а м ' я т ь з п о с л і д о в н и м д о с т у п о м , ш и р о к о в и к о ­
ристовувана в комп'ютерах, з якої дані з ч и т у ю т ь с я п о с л і д о в н о одне за о д н и м в п о р я д к у
їх з а п и с у або в п о р я д к у з ч и т у в а н н я .
П а м ' я т ь з п о с л і д о в н и м д о с т у п о м будується т а к и м ч и н о м , що дані з ч и т у ю т ь с я а б о
записуються до цієї п а м ' я т і в п о с л і д о в н о м у п о р я д к у о д н е за о д н и м , у т в о р ю ю ч и д е я к у
чергу. З ч и т у в а н н я здійснюється з черги слово за с л о в о м в п о р я д к у з а п и с у або в з в о ­
р о т н о м у порядку. П р я м и й п о р я д о к з ч и т у в а н н я з а б е з п е ч у є т ь с я п а м ' я т т ю т и п у FIFO з
дисципліною о б с л у г о в у в а н н я " п е р ш и й п р и й ш о в - п е р ш и й в и й ш о в " (First In, First Out).
Обернений порядок зчитування забезпечується пам'яттю типу LIFO з дисципліною об­
слуговування "останній п р и й ш о в - п е р ш и й в и й ш о в " (Last In, First Out), або, що є т и м же
самим, п а м ' я т т ю т и п у F I L O з д и с ц и п л і н о ю о б с л у г о в у в а н н я " п е р ш и й п р и й ш о в - остан­
ній в и й ш о в " (First In, Last Out). П а м ' я т ь з п о с л і д о в н и м д о с т у п о м , яка п о б у д о в а н а на ре­
гістрах, часто н а з и в а є т ь с я стеком. П р и к л а д такої п а м ' я т і п о к а з а н о на рис. 9.5, де дані з
ш и н и через регістр даних РгД п о с т у п а ю т ь до п о с л і д о в н о з ' є д н а н и х регістрів п а м ' я т і РгО,
Р г і , . . . Р г ( к - І ) , п о я к и х р у х а ю т ь с я вверх а б о в н и з з а л е ж н о від з н а ч е н н я сигналу р е ж и м у
роботи.
312

Шина даних Вверх/

:_ вниз

РгД
І
і

PrO •*—•

м
Prl

* * *

Рг (к-1) •*—
Рис. 9.5. Стекова пам'ять типу FILO

Ця п а м ' я т ь є н а й ш в и д ш о ю та п р о с т о ю в реалізації. Як в и д н о з рис. 9.6, де показано


і н т е р ф е й с п а м ' я т і з п о с л і д о в н и м д о с т у п о м з р о з д і л е н и м и та о б ' є д н а н и м и входом і ви­
х о д о м , в цій п а м ' я т і в і д с у т н і й а д р е с н и й вхід.

Вхідні дані Дані

ТІ ТІ

• ппд
Вверх/
• ппд
1
вниз
і"
Т
Вихідні дані

Рис. 9.6. Інтерфейс пам'яті з послідовним доступом з розділеними


та об'єднаними входом і виходом

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


в и д а в а т и п о п е р е д н ь о п р и й н я т і дані, які р у х а ю т ь с я з входу до в и х о д у за допомогою так­
т о в и х імпульсів ТІ. Коли ж вхід і вихід о б ' є д н а н і , то дані в в о д я т ь с я в п а м ' я т ь тактовими
і м п у л ь с а м и , які п о с т у п а ю т ь по в х о д у р е ж и м у р о б о т и "вверх", а в и в о д я т ь с я з пам'яті так­
т о в и м и і м п у л ь с а м и , які п о с т у п а ю т ь п о входу р е ж и м у р о б о т и "вниз".
Н е д о л і к о м пам'яті з п о с л і д о в н и м д о с т у п о м є з н а ч н и й час д о с т у п у до конкретної оди­
н и ц і і н ф о р м а ц і ї . В г і р ш о м у в и п а д к у для т а к о г о д о с т у п у м о ж е в и н и к н у т и п о т р е б а в пе­
регляді всього о б ' є м у п а м ' я т і .
П а м ' я т ь з а с о ц і а т и в н и м д о с т у п о м (або а с о ц і а т и в н а п а м ' я т ь ) зберігає р а з о м з даними
і їх о з н а к и , в ролі якої м о ж е б у т и і саме дане. Я д р о пам'яті з а с о ц і а т и в н и м д о с т у п о м по­
к а з а н е на рис. 9.7. Роль к о м і р о к цієї п а м ' я т і в и к о н у ю т ь регістри. Ч и с л а з а п и с у ю т ь с я в до­
вільні вільні регістри п а м ' я т і . Дані в и б и р а ю т ь с я з такої п а м ' я т і на основі збігу їх ознак з
з а д а н о ю . Д л я ц ь о г о о з н а к и д а н и х з усіх регістрів п а м ' я т і п о с т у п а ю т ь на схему порівнян­
н я , де п о р і в н ю ю т ь с я з з а д а н о ю о з н а к о ю із регістра о з н а к и , і на вихід пам'яті поступають
дані, о з н а к и я к и х з б і г а ю т ь с я з з а д а н о ю .
373

Рг ознаки

Регістри

^ ^ Слово 0
<4 Слово 1

Схема
порівняння Ознака Інформація Слово і

Слово М-1

Рис. 9.7. Ядро пам'яті з асоціативним доступом

В паралельній асоціативній п а м ' я т і о д н о ч а с н о п о р і в н ю ю т ь с я з а р г у м е н т о м всі р о з ­


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

9.1.3. Основні характеристики пам'яті


До о с н о в н и х х а р а к т е р и с т и к п а м ' я т і н а л е ж а т ь : є м н і с т ь , організація, ш в и д к о д і я та
вартість.
Ємність в и р а ж а ю т ь ч и с л о м бітів а б о б а й т і в , які м о ж у т ь зберігатися в п а м ' я т і . Д о б а в ­
лення до одиниці в и м і р у м н о ж н и к а К о з н а ч а є м н о ж е н н я на 210 = 1024, м н о ж н и к а М -
множення на 220 = 1048576, а м н о ж н и к а Г - м н о ж е н н я на 230 = 1073741824.
Важливою х а р а к т е р и с т и к о ю п а м ' я т і є її о р г а н і з а ц і я , т о б т о кількість к о м і р о к в п а м ' я ­
ті М = 2 т а р о з р я д н і с т ь к о ж н о ї к о м і р к и п. Хоча о р г а н і з а ц і я пам'яті в к а з у є на її ємність,
ш

це є самостійна х а р а к т е р и с т и к а , оскільки п р и тій же є м н о с т і о р г а н і з а ц і я п а м ' я т і м о ж е


бути різною.
Для кількісної о ц і н к и швидкодії пам^яті в и к о р и с т о в у ю т ь н а с т у п н і х а р а к т е р и с т и к и :
• Час з ч и т у в а н н я та час запису, а б о час з ч и т у в а н н я / з а п и с у . Ч а с з ч и т у в а н н я - це
інтервал часу між м о м е н т а м и подачі с и г н а л у з ч и т у в а н н я та п о я в и слова на виході п а м ' я -
314

ті. Час з а п и с у - це інтервал часу після м о м е н т у подачі сигналу запису, достатній для
з а п а м ' я т о в у в а н н я слова в пам'яті. М і н і м а л ь н о д о п у с т и м и й інтервал між послідовними
з ч и т у в а н н я м та з а п и с о м н а з и в а є т ь с я ч а с о м з ч и т у в а н н я / з а п и с у . Цей час м о ж е переви­
щ у в а т и час з ч и т у в а н н я а б о запису, оскільки після в и к о н а н н я цих операцій може бути
п о т р і б н и й час на в і д н о в л е н н я п о ч а т к о в о г о с т а н у пам'яті.
• Час доступу. Для п а м ' я т і з д о в і л ь н и м д о с т у п о м час д о с т у п у р і в н и й інтервалу
часу від м о м е н т у н а д х о д ж е н н я адреси до моменту, коли дані з а н о с я т ь с я в п а м ' я т ь або
стають д о с т у п н и м и . Д л я п а м ' я т і з р у х о м и м носієм і н ф о р м а ц і ї - це час, що витрачається
на у с т а н о в к у головки з а п и с у / з ч и т у в а н н я (або носія) в п о т р і б н у позицію.
• Тривалість ц и к л у п а м ' я т і або період з в е р н е н н я . Дане п о н я т т я застосовується до
п а м ' я т і з д о в і л ь н и м д о с т у п о м , для якої в о н о о з н а ч а є м і н і м а л ь н и й час м і ж д в о м а послі­
д о в н и м и з в е р н е н н я м и до пам'яті. Період з в е р н е н н я в к л ю ч а є час д о с т у п у плюс деякий
д о д а т к о в и й час. Д о д а т к о в и й час м о ж е бути п о т р і б е н д л я з а т у х а н н я сигналів на лініях, а
в д е я к и х т и п а х п а м ' я т і , де з ч и т у в а н н я і н ф о р м а ц і ї п р и в о д и т ь до її р у й н у в а н н я , - для від­
н о в л е н н я з ч и т а н о ї інформації.
Вартість п а м ' я т і п р и й н я т о оцінювати в і д н о ш е н н я м її загальної вартості до ємності в
бітах або байтах, т о б т о вартістю з б е р і г а н н я одного біта або байта інформації. На рис. 9.8
п о к а з а н а зміна з р о к а м и в а р т о с т і з б е р і г а н н я одного MB і н ф о р м а ц і ї та часу доступу до
о д и н и ц і і н ф о р м а ц і ї в не для т р ь о х типів пам'яті: статичної н а п і в п р о в і д н и к о в о ї пам'яті
з д о в і л ь н и м д о с т у п о м ( S R A M ) , д и н а м і ч н о ї н а п і в п р о в і д н и к о в о ї пам'яті з довільним до­
с т у п о м ( D R A M ) та п а м ' я т і на м а г н і т н и х дисках (Disk).
100.000г •
о SRAM
,1960
10.000 • DRAM
«Disk
• 1985
1.000
1980
1990
100 зі 995° • 1985
Ціна
S/MB • 2000 • 1990 »1980
10 Різниця в часі доступу Г
'2005 1995 1985

«2000 «1990

•2005
»1995
0.1

»2000
0.01 10 100 1.000 10.000 100.000 1.000.000 10.000.000 100.000.000
І Час доступу (не) І

Рис. 9.8. Зміна з роками вартості зберігання одного МВ інформації та часу доступу
до одиниці інформації

Як б а ч и м о , ціна з б е р і г а н н я одного МВ і н ф о р м а ц і ї в статичній пам'яті залишається


д о с и т ь високою (більше, ніж в 10 разів в и щ о ю , ніж в динамічній пам'яті). Але, і час до­
с т у п у до д а н и х в цій п а м ' я т і є з н а ч н о м е н ш и м ( м а й ж е в 100 разів). П р и цьому, як видно
з рисунку, зберігається с у т т є в и й р о з р и в між ц і н о ю зберігання одного МВ інформації та
часом д о с т у п у до д а н и х в статичній та д и н а м і ч н і й пам'яті, і дисковій пам'яті.
375

9.2 Регістровий файл процесора

9.2.1. Типи регістрових файлів


Регістровий ф а й л ( н а д о п е р а т и в н а п а м ' я т ь ) - це набір п р о г р а м н о - д о с т у п н и х р е ­
гістрів, які з н а х о д я т ь с я в регістровій п а м ' я т і п р о ц е с о р а . В сучасних п р о ц е с о р а х регі­
стровий файл з а й м а є одне з ц е н т р а л ь н и х місць. Він в и к о р и с т о в у є т ь с я д л я л о к а л ь н о г о
з б е р е ж е н н я операндів, адрес к о м а н д та даних, індексів, а т а к о ж д о з в о л я є о р г а н і з о в у в а ­
ти е ф е к т и в н и й обмін д а н и м и м і ж о п е р а ц і й н и м и п р и с т р о я м и п р о ц е с о р а та о с н о в н о ю
пам'яттю. Вибір е ф е к т и в н о ї організації р е г і с т р о в о г о ф а й л а є о д н и м із підходів, що до­
зволяє п і д в и щ и т и п р о д у к т и в н і с т ь к о м п ' ю т е р а . Я к п р а в и л о , о р г а н і з а ц і я р е г і с т р о в о г о
файла н а л е ж и т ь до технічних х а р а к т е р и с т и к комп'ютера.
Розглянемо деякі історичні аспекти р о з в и т к у організації регістрового файла п р о ­
цесора. П р о г р а м н о - д о с т у п н і регістри почали в и к о р и с т о в у в а т и с я з початку 1960-х років.
В 1964 році фірма I B M р о з р о б и л а серію у н і в е р с а л ь н и х к о м п ' ю т е р і в ІВМ/360 для н а у к о в и х
та комерційних р о з р а х у н к і в , в п р о ц е с о р а х я к и х був в и к о р и с т а н и й р е г і с т р о в и й ф а й л , що
включав 16 3 2 - р о з р я д н и х ц і л о ч и с е л ь н и х регістрів та 16 6 4 - р о з р я д н и х регістрів з р у х о ­
мою комою. Також в 1964 р о ц і був в и г о т о в л е н и й п е р ш и й с у п е р к о м п ' ю т е р для наукових
розрахунків C D C 6600, п р о ц е с о р я к о г о мав р е г і с т р о в и й ф а й л , що в к л ю ч а в 24 регістри.
В 1977 році був с п р о е к т о в а н и й п е р ш и й в е к т о р н и й с у п е р к о м п ' ю т е р Сгау-1, р е г і с т р о в и й
файл якого м а в ієрархічну структуру. Й о г о було поділено на ф а й л о с н о в н и х регістрів і
файл д р у г о р я д н и х ( ф о н о в и х ) регістрів. Кількість о с н о в н и х регістрів була м е н ш о ю , що
д о з в о л я л о з а б е з п е ч и т и ш в и д к и й д о с т у п до них, тоді як кількість д р у г о р я д н и х регістрів
була більшою, п р о т е д о с т у п до них був п о в і л ь н і ш и м . О п е р а н д и т р и в а л о г о зберігання
р о з м і щ у в а л и с я в д р у г о р я д н и х регістрах і п е р е м і щ у в а л и с я в о с н о в н і регістри при п о т р е ­
бі їх в и к о р и с т а н н я . Сгау-1 з а г а л о м м і с т и в 656 регістрів д а н и х і адрес ( в к л ю ч а ю ч и век­
торні регістри, але не в р а х о в у ю ч и регістрів к е р у в а н н я ) . На о с о б л и в у увагу заслуговує
група з в о с ь м и в е к т о р н и х регістрів. К о ж н и й т а к и й регістр міг в м і щ у в а т и 64-х елемент­
ний в е к т о р з рухомою комою. О д н і є ю 16-ти р о з р я д н о ю к о м а н д о ю м о ж н а було додати,
відняти чи п е р е м н о ж и т и два в е к т о р и .
З наведених п р и к л а д і в в и д н о , що для організації в и с о к о п р о д у к т и в н и х о б ч и с л е н ь
в а ж л и в о не тільки мати в е л и к у кількість регістрів, але і з а б е з п е ч и т и ш в и д к и й д о с т у п до
даних, які в них зберігаються, за р а х у н о к е ф е к т и в н о ї організації р е г і с т р о в о г о файлу.
На рис. 9.9 приведена к л а с и ф і к а ц і я типів р е г і с т р о в и х ф а й л і в п р о ц е с о р а . В н и х в и к о ­
ристовується статична організація з б е р е ж е н н я даних, т о б т о п р и записі і ч и т а н н і д а н и х
вказується безпосередня адреса регістра, яка є н е з м і н н о ю під час в и к о н а н н я п р о г р а м и .

Типи регістрових файлів

1 1
Інтегрований _ Розподілень Ієрархічний
багатопортовии . . , 1
, . ,
1

регістровий файл регістровий файл регістровий файл

1
Кластерна Організація з Регістрові
організація керованою комутацією вікна
Рис. 9.9. Класифікація шипів регістрових файлів

Розглянемо наведені на рис. 9.9 т и п и р е г і с т р о в и х ф а й л і в д е т а л ь н і ш е .


316

9.2.2. Інтегрований багатопортовий регістровий файл


В і н т е г р о в а н о м у б а г а т о п о р т о в о м у р е г і с т р о в о м у файлі забезпечується доступ до
б у д ь - я к о г о регістру з к о ж н о г о його порта. На рис. 9.10 п о к а з а н а с т р у к т у р а інтегровано­
го р е г і с т р о в о г о ф а й л а з д в о м а п о р т а м и з ч и т у в а н н я (гсіі, гсІ2), та о д н и м п о р т о м запису
(\УСІ), я к и й м і с т и т ь 32 3 2 - р о з р я д н и х регістри (Рч0-Р31). В регістр РчО з а п и с заборонений,

оскільки в н ь о м у зберігається к о н с т а н т а нуль. Вихід к о ж н о г о регістра під'єднаний до


в і д п о в і д н и х і н ф о р м а ц і й н и х входів м у л ь т и п л е к с о р і в М П 1 та М П 2 . Адреси (ГБІ, гв2), що
п о д а ю т ь с я на входи к е р у в а н н я м у л ь т и п л е к с о р і в , в и з н а ч а ю т ь н о м е р и регістрів, з яких
ч и т а ю т ь с я дані. Для з а п и с у в и к о р и с т о в у є т ь с я д е м у л ь т и п л е к с о р Д М П , через я к и й на від­
п о в і д н и й регістр п о д а є т ь с я сигнал з а п и с у д а н и х (\УЄ), ЩО п о с т у п а є з вхідної ш и н и , та
адреса регістра П р о ц е с з а п и с у с и н х р о н і з у є т ь с я т а к т о в и м и імпульсами, щ о подають­
ся на вхід сік. К о ж н и й з регістрів м а є вхід д о з в о л у з а п и с у д а н и х Еп, і н ф о р м а ц і й н и й вхід
Б , т а і н ф о р м а ц і й н и й вихід 0 .
П5І

Рис. 9.10. Структура інтегрованого регістрового файла

Із з б і л ь ш е н н я м КІЛЬКОСТІ регістрів р е г і с т р о в о г о ф а й л а з р о с т а є час д о с т у п у до даних,


т а к як у с к л а д н ю ю т ь с я м у л ь т и п л е к с о р и та д е м у л ь т и п л е к с о р и , а т а к о ж відповідно збіль­
шується розмір кристалу процесора.
З б і л ь ш е н н я кількості п о р т і в з ч и т у в а н н я та з а п и с у п р и з в о д и т ь до з б і л ь ш е н н я кіль­
кості в і д п о в і д н о м у л ь т и п л е к с о р і в та демультиплексорів, а т а к о ж с у т т є в о збільшує
кількість ш и н передачі даних, що у с к л а д н ю є реалізацію р е г і с т р о в о г о файла. Крім того,
з ' я в л я є т ь с я м о ж л и в і с т ь в и н и к н е н н я к о н ф л і к т н и х ситуацій п р и с п р о б і з а п и с у даних до
тих с а м и х регістрів. Тому і н т е г р о в а н и й р е г і с т р о в и й ф а й л д о ц і л ь н о використовувати в
к о м п ' ю т е р а х , де не в и м а г а є т ь с я в е л и к а кількість п о р т і в . Н а п р и к л а д , регістрові файли
к о м п ' ю т е р і в RS/6000 ф і р м и I B M , та SuperSPARC ф і р м и Sun, містять 4 п о р т и для зчиту­
в а н н я і 2 п о р т и д л я запису.

9.2.3. Розподілений регістровий файл


В и к о р и с т а н н я р о з п о д і л е н и х р е г і с т р о в и х файлів д о з в о л я є з м е н ш и т и п л о щ у кристала,
я к у з а й м а є р е г і с т р о в а п а м ' я т ь п р о ц е с о р а . Р о з п о д і л е н н я р е г і с т р о в о г о ф а й л а здійснюєть­
ся ш л я х о м поділу ф у н к ц і о н а л ь н и х елементів п р о ц е с о р а на групи, к о ж н а з я к и х має свій
317

локальний регістровий ф а й л . Відповідно, такі регістрові ф а й л и м і с т я т ь м е н ш у кількість


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

9.2.3.1. Кластерний розподілений регістровий файл

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


ної групи ф у н к ц і о н а л ь н и х елементів п р о ц е с о р а д о с т у п н і тільки з к о н к р е т н о г о л о к а л ь ­
ного регістрового файла. Такий р о з п о д і л е н и й р е г і с т р о в и й ф а й л , я к и й складається з
н е з а л е ж н и х л о к а л ь н и х р е г і с т р о в и х ф а й л і в , відповідно д о наведеної в и щ е класифікації,
називають к л а с т е р н и м .
Кластерні регістрові ф а й л и з д е б і л ь ш о г о в и к о р и с т о в у ю т ь с я у в е к т о р н и х п р о ц е с о р а х .
В таких п р о ц е с о р а х одна о п е р а ц і я н а д всіма п к о м п о н е н т а м и в е к т о р н и х о п е р а н д і в за­
дається однією к о м а н д о ю . Кожен з т а к и х в е к т о р н и х о п е р а н д і в м і с т и т ь с я в л о к а л ь н о м у
регістровому файлі біля відповідного ф у н к ц і о н а л ь н о г о елемента п р о ц е с о р а , і відпадає
необхідність у п о в н о ц і н н и х з в ' я з к а х м і ж л о к а л ь н и м и р е г і с т р о в и м и ф а й л а м и .
На рис. 9.11 показана кластерна о р г а н і з а ц і я р е г і с т р о в о г о ф а й л а п р о ц е с о р а TMS320
С64х ф і р м и Texas Instruments. В ц ь о м у п р о ц е с о р і ф у н к ц і о н а л ь н і елементи поділені на
п і д м н о ж и н у A ( L I , SI, M l , D1) та п і д м н о ж и н у В (L2, S2, М 2 , D2). Ф у н к ц і о н а л ь н і елемен­
ти п р о ц е с о р а L ( L I , L2) в и к о н у ю т ь а р и ф м е т и ч н і операції та операції п о р і в н я н н я . Ф у н к ­
ціональні елементи п р о ц е с о р а S (SI, S2) в и к о н у ю т ь а р и ф м е т и ч н о - л о г і ч н і операції та ко­
манди керування. Ф у н к ц і о н а л ь н і елементи п р о ц е с о р а М ( M l , М 2 ) в и к о н у ю т ь м н о ж е н н я
16-ти р о з р я д н и х операндів, а ф у н к ц і о н а л ь н і елементи п р о ц е с о р а D ( D l , D2) в и к о н у ю т ь
а р и ф м е т и ч н і операції, та в и к о н у ю т ь р о л ь генераторів адрес.

Peric-ров/й файл А Регістровий ф а й л В

С Е т т т
ts7

Рис. 9.11. Організація регістрового файла процесора TMS320C64x фірми Texas Instruments

К о ж н а п і д м н о ж и н а м а є свій л о к а л ь н и й р е г і с т р о в и й ф а й л . Д л я п е р е с и л а н н я д а н и х з
р е г і с т р о в о г о ф а й л а однієї п і д м н о ж и н и д о ф у н к ц і о н а л ь н и х е л е м е н т і в і н ш о ї п і д м н о ж и -
н и в и к о р и с т о в у ю т ь с я додаткові м у л ь т и п л е к с о р и М П . Ф а к т и ч н о , м о ж л и в і с т ь п о в н о ­
цінної п е р е с и л к и о б м е ж е н а , о с к і л ь к и д л я ц ь о г о в к о ж н о м у з л о к а л ь н и х р е г і с т р о в и х
файлів в и д і л я є т ь с я т і л ь к и о д и н порт. С а м е з цієї п р и ч и н и о р г а н і з а ц і ю р е г і с т р о в о г о
файла Т М 8 3 2 0 С 6 4 х м о ж н а н а з в а т и к л а с т е р н о ю . З р о з у м і л о , щ о о п и с а н а о р г а н і з а ц і я р е ­
гістрового ф а й л а д л я п р и в е д е н о г о т и п у п р о ц е с о р і в д о з в о л я є з м е н ш и т и з а т р а т и о б л а д ­
н а н н я та п р и с к о р и т и час д о с т у п у до р е г і с т р і в у п о р і в н я н н і з і н т е г р о в а н и м р е г і с т р о в и м
ф а й л о м того ж об'єму.
318

9.2.3.2. Розподілений регістровий файл з керованою комутацією

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


я к о г о л о к а л ь н о г о р е г і с т р о в о г о ф а й л а , то це буде і н ш и й варіант організації розподілено­
го р е г і с т р о в о г о файла. Й о г о н а з и в а ю т ь р о з п о д і л е н и м р е г і с т р о в и м ф а й л о м з керованою
комутацією.
Р о з п о д і л е н и й р е г і с т р о в и й ф а й л з к е р о в а н о ю к о м у т а ц і є ю , с т р у к т у р а якого приведена
на рис. 9.12, складається з л о к а л ь н и х р е г і с т р о в и х ф а й л і в (ЛРФ), що зв'язані з функціо­
н а л ь н и м и е л е м е н т а м и (ФЕ) п р о ц е с о р а через к о м у т у ю ч у мережу, к е р у в а н н я якою вико­
нує к о н т р о л е р к о м у т у ю ч о ї м е р е ж і ( К К М ) .
до ФЕї до ФЕг ДО ФЕ-.

т т т ККМ
Комутуюча мережа

ЛРФ- ЛРФг ЛРФ2К

Рис. 9.12. Розподілений регістровий файл з керованою комутацією

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


м и й л о к а л ь н и й р е г і с т р о в и й ф а й л Л Р Ф з о д н и м п о р т о м для з ч и т у в а н н я та о д н и м портом
для з а п и с у даних. Тому кількість л о к а л ь н и х р е г і с т р о в и х ф а й л і в є в два рази більшою
кількості ф у н к ц і о н а л ь н и х елементів п р о ц е с о р а . О б ' є м (кількість регістрів) кожного ло­
к а л ь н о г о р е г і с т р о в о г о ф а й л а є с т а л и м , і не з а л е ж и т ь від кількості ф у н к ц і о н а л ь н и х еле­
ментів.
П о р і в н я н о з б а г а т о п о р т о в и м і н т е г р о в а н и м р е г і с т р о в и м ф а й л о м т у т додатково вве­
дена к о м у т у ю ч а м е р е ж а т а ї ї к о н т р о л е р , щ о п о т р е б у є додаткових затрат обладнання.
Ч а с д о с т у п у до регістрів р о з п о д і л е н о г о р е г і с т р о в о г о ф а й л а з к е р о в а н о ю комутацією
с к л а д а є т ь с я з з а т р и м к и в к о м у т у ю ч і й м е р е ж і , я к а не є з н а ч н о ю із-за невеликої кількості
входів, та із часу д о с т у п у до л о к а л ь н о г о регістрового файла, я к и й не з а л е ж и т ь від кіль­
кості ф у н к ц і о н а л ь н и х елементів п р о ц е с о р а і є сталою в е л и ч и н о ю для заданої кількості
регістрів. В сумі ця в е л и ч и н а є м е н ш о ю часу д о с т у п у до регістра багатопортового інте­
г р о в а н о г о р е г і с т р о в о г о ф а й л а з тією ж с у м а р н о ю кількістю регістрів.

9.2.3.3. Розподілений регістровий файл з віконною організацією

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

319

файл поділений на N вікон, к о ж н о м у з я к и х відповідає о д и н з р е г і с т р о в и х ф а й л і в РФО


- РФ N - 1 . Для з м і н и а к т и в н о г о вікна в и к о р и с т о в у є т ь с я сигнал в и б о р у ф а й л а з блоку
керування.
Сигнали
^ керування

Блок керування
Керування
Вибір файлу
доступом

Адреси

Вхідні дані

Вихідні дані

РО N-1

Рис. 9.13. Розподілений регістровий файл з віконною організацією

Потрібно з а з н а ч и т и , що о р г а н і з а ц і я р е г і с т р о в о г о ф а й л а у вигляді р е г і с т р о в и х вікон є


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

9.2.4. Ієрархічний регістровий файл


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

Регістровий ф а й л п р о ц е с о р а S P A R C ф і р м и Sun м о ж н а з д е я к и м и застереженнями


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

9.2.5. Динамічна та статична організація збереження даних


в регістрових файлах
В р о з г л я н у т и х с т р у к т у р а х р е г і с т р о в и х ф а й л і в дані зберігаються в к о н к р е т н и х ре­
гістрах. Д о с т у п до ц и х регістрів відбувається ш л я х о м з а д а н и я їх адреси. Така статична
організація з б е р е ж е н н я д а н и х часто є н е е ф е к т и в н о ю для в и к о н а н н я деяких класів алго­
р и т м і в . Н а п р и к л а д , задачі р о б о т и із з о б р а ж е н н я м и , з в у к о м , стиском даних в реальному
м а с ш т а б і часу в и м а г а ю т ь від р е г і с т р о в о г о ф а й л у о д н о ч а с н о г о п р и й о м у вхідних масивів
д а н и х з декількох вхідних каналів, їх з а т р и м к и на п о т р і б н у кількість тактів та видачі
декількома в и х і д н и м и к а н а л а м и р а н і ш е п р и й н я т и х м а с и в і в даних з в п о р я д к у в а н н я м за
з а д а н и м з а к о н о м . Для в и р і ш е н н я т а к и х задач д о ц і л ь н о в и к о р и с т о в у в а т и динамічне збе­
р е ж е н н я д а н и х в р е г і с т р о в и х ф а й л а х . О с н о в о ю а п а р а т н и х рішень д и н а м і ч н и х регістро­
вих ф а й л і в є черги. Д и н а м і ч н и й п р и н ц и п з б е р е ж е н н я д а н и х для складних задач обробки
і н ф о р м а ц і ї в р е а л ь н о м у м а с ш т а б і ч а с у на основі черг м а є н а с т у п н і переваги:
• д о с т у п до черги є п р о с т і ш и й , н і ж д о с т у п до с т а т и ч н о г о регістрового файлу,
о с к і л ь к и відсутні адреси;
• з б і л ь ш е н н я кількості регістрів у черзі не п р и з в о д и т ь до вагомого зростання
складності р е г і с т р о в о г о ф а й л у та не с п о в і л ь н ю є й о г о р о б о т у ;
• п р о с т о т а о п т и м і з а ц і ї с т р у к т у р и р е г і с т р о в о г о ф а й л у під з а д а н и й алгоритм;
• необхідна м е н ш а кількість а д р е с н и х ліній, п о р і в н я н о зі с т а т и ч н и м и регістрови­
ми файлами;
• в и р і ш у є т ь с я п р о б л е м а р о з п о д і л у регістрів, оскільки дані з а п и с у ю т ь с я не в кон­
к р е т н и й регістр, а в чергу.
• м о ж л и в і с т ь реалізації р е г і с т р о в о г о ф а й л а на основі модулів напівпровідникової
пам'яті з довільним доступом.
Слід з а у в а ж и т и н а с т у п н у с т а т и с т и к у : 40 % результатів в и к о н а н н я арифметичних
о п е р а ц і й в и к о р и с т о в у ю т ь с я на н а с т у п н о м у такті в и к о н а н н я п р о г р а м и , а ще 45 % - через
такт. Такі дані ще р а з п е р е к о н у ю т ь в е ф е к т и в н о с т і реалізації регістрових файлів на осно­
ві черг.
Регістровий ф а й л на основі черг м о ж е бути п о б у д о в а н и й за п р и н ц и п о м пам'яті з по­
слідовним д о с т у п о м т и п у FIFO. Недоліком такої організації є те, що для алгоритмів, в
я к и х у м о в и сумісності черг не в и к о н у ю т ь с я , різко з б і л ь ш у ю т ь с я затрати обладнання на
його реалізацію.
К р а щ о ю є р е а л і з а ц і я р е г і с т р о в о г о ф а й л у на основі черг, побудованого на пам'яті з
п р о г р а м о в а н о ю з а т р и м к о ю . С т р у к т у р а такого р е г і с т р о в о г о файла, я к и й м о ж н а віднести
до р о з п о д і л е н и х р е г і с т р о в и х ф а й л і в із к е р о в а н о ю к о м у т а ц і є ю та д и н а м і ч н и м збережен­
н я м даних, наведена на рис. 9.14. Такий тип с т р у к т у р и має найбільші м о ж л и в о с т і вра­
х у в а н н я о с о б л и в о с т е й а л г о р и т м і в , що д о з в о л я є в и к о н у в а т и а л г о р и т м и з максимальною
продуктивністю.
321

Двх1 А1 Двх2 А2 Двхк Ак

II т | мережа 1
Комутуюча

МЧ1 МЧ2 МЧк

І
Комутуюча мережа 2

Двихі Двих2 Двихк


Рис. 9.14. Регістровий файл на базі черги з програмованою затримкою

Тут модуль черги ( М Ч ) п о б у д о в а н о на основі д в о п о р т о в о ї адресної пам'яті. О д и н


порт д о з в о л я є ч и т а т и дані з п а м ' я т і , а і н ш и й - з а п и с у в а т и дані в п а м ' я т ь . З ч и т у в а н н я
даних в и к о н у є т ь с я а н а л о г і ч н о д о п а м ' я т і FIFO, т о б т о через к о ж н и й т а к т о в и й і м п у л ь с
читається комірка за а д р е с о ю , б і л ь ш о ю на о д и н и ц ю від попередньої. З б і л ь ш е н н я адреси
забезпечується л і ч и л ь н и к о м . А л г о р и т м п р о с у в а н н я д а н и х в модулі п р е д с т а в л я є с о б о ю
генерування сигналу з ч и т у в а н н я для п о т р і б н о ї к о м і р к и п а м ' я т і д а н о г о м о д у л я . Таким
ч и н о м к о ж н а комірка є п р о н у м е р о в а н а і зберігає свій н о м е р . Л і ч и л ь н и к п а м ' я т і генерує
послідовні з н а ч е н н я , щ о в и з н а ч а ю т ь н о м е р к о м і р к и , я к а п о в и н н а в и д а в а т и дані назовні.
Отже, як бачимо, система з ч и т у в а н н я д у ж е п р о с т а - дані з ч и т у ю т ь с я тоді, коли п р и х о ­
дить їх черга. А в п о р я д к у в а н н я з д і й с н ю є т ь с я на етапі з а п и с у : до к о м і р к и я к о г о н о м е р а
з а п и ш у т ь с я дані, на такті з т и м н о м е р о м в о н и і в и д а д у т ь с я назовні. Адреса з а п и с у ф о р ­
мується з а д о п о м о г о ю л і ч и л ь н и к а т а с у м а т о р а ш л я х о м д о д а в а н н я з н а ч е н н я з а т р и м к и
(адреса А) та з н а ч е н н я л і ч и л ь н и к а . Двхі - і-й в х і д н и й п о р т даних, Двихі - і-й в и х і д н и й
порт даних (і= 1,2,...,к).

9.3. Пам'ять з асоціативним доступом

9.3.1. Організація та типи пам'яті з асоціативним доступом


П а м ' я т ь з а с о ц і а т и в н и м д о с т у п о м (або а с о ц і а т и в н а п а м ' я т ь ) ш и р о к о в и к о р и с т о в у ­
ється в сучасних комп'ютерах. У п е р ш у чергу за п р и н ц и п о м п а м ' я т і з а с о ц і а т и в н и м д о ­
ступом п о б у д о в а н о з а п а м ' я т о в у ю ч і п р и с т р о ї кеш п а м ' я т і більшості к о м п ' ю т е р і в . Крім
того, за п р и н ц и п а м и п а м ' я т і з а с о ц і а т и в н и м д о с т у п о м п о б у д о в а н о б у ф е р н у п а м ' я т ь в
конвеєрних п р о ц е с о р а х , з о к р е м а ц е б у ф е р п о п е р е д н ь о ї в и б і р к и к о м а н д , б у ф е р в п о р я д ­
к у в а н н я і т. д. Асоціативна п а м ' я т ь е ф е к т и в н а т а к о ж для п о б у д о в и п р и с т р о ї в для в и к о ­
нання операцій ч и с л о в о г о п о ш у к у (min, max, с о р т у в а н н я і т. д.).
Пам'ять з асоціативним д о с т у п о м передбачає зберігання р а з о м із д а н и м и і їх ознаки, в
ролі якої може бути і саме дане. Дані в и б и р а ю т ь с я з такої пам'яті на основі збігу їх ознак із
заданою. Тому цю пам'ять іще називають пам'яттю, що адресується за вмістом або за да­
ними. Ядро пам'яті з асоціативним д о с т у п о м приведене на рис. 9.7. На рис. 9.15 п р и в е д е н а
детальніша с т р у к т у р а одного з варіантів п о б у д о в и п а м ' я т і з а с о ц і а т и в н и м д о с т у п о м .
322

Ознака , Сигнали
пошуку керування
пам'яттю
Запис
ознаки

Пристрій керування
Встановлення
регістріРі Встановлення
маски
Результат Рг маски
порівняння
С и г н а л и збігу Регістри Запис-читання

Слово 0
Слово 1

* * *

Регістр Схема
порівняний Ознака
збігів Інформація Слово і
на збіжність

* * *

•4 • Слово М-1

Результат порівняння

Рис. 9.15. Структура пам'яті з асоціативним доступом

Ця пам'ять включає:
• м а с и в регістрів д л я з б е р і г а н н я N т - р о з р я д н и х слів, в к о ж н о м у з я к и х частина
розрядів зайнята ознаками, а іншу частину розрядів займає службова інформація;
• регістр асоціативної о з н а к и , куди п о м і щ а є т ь с я код ш у к а н о ї і н ф о р м а ц і ї (ознака
п о ш у к у ) . Р о з р я д н і с т ь ц ь о г о регістра з а з в и ч а й є м е н ш о ю чи р і в н о ю д о в ж и н і слова п;
• схему п о р і в н я н н я на з б і ж н і с т ь , я к а в и к о р и с т о в у є т ь с я д л я п р о в е д е н н я паралель­
н о г о а б о послідовного п о р і в н я н н я бітів о з н а к п о ш у к у всіх слів, що зберігаються, з від­
п о в і д н и м и б і т а м и асоціативної о з н а к и пошуку, і в и р о б л е н н я сигналів збігу;
• регістр збігів, в я к о м у к о ж н о м у регістру м а с и в у п а м ' я т і відповідає один розряд,
в я к и й з а н о с и т ь с я о д и н и ц я , я к щ о всі р о з р я д и о з н а к и слова відповідного регістра спів­
п а л и з о д н о й м е н н и м и р о з р я д а м и асоціативної о з н а к и п о ш у к у ;
• регістр маски, я к и й д о з в о л я є з а б о р о н и т и п о р і в н я н н я п е в н и х бітів;
• п р и с т р і й к е р у в а н н я , я к и й на основі з о в н і ш н і х сигналів к е р у в а н н я здійснює за­
п и с асоціативної о з н а к и п о ш у к у до відповідного регістра, в с т а н о в л ю є маску в регістрі
м а с к и , та на основі д а н и х п о р і в н я н н я на з б і ж н і с т ь з регістра збігів здійснює зчитування
д а н и х із регістрів асоціативної п а м ' я т і , а т а к о ж з а п и с до н и х вхідних даних.
П р и з в е р н е н н і до п а м ' я т і з а с о ц і а т и в н и м д о с т у п о м , с п о ч а т к у сигналами з блоку ке­
р у в а н н я р о з р я д и регістра м а с к и , я к і н е п о в и н н і в р а х о в у в а т и с я п р и п о ш у к у інформа­
ції, в с т а н о в л ю ю т ь с я в нульові з н а ч е н н я , і всі р о з р я д и регістра збігів встановлюються
в о д и н и ч н и й стан. Після ц ь о г о в регістр асоціативної о з н а к и з а н о с и т ь с я код шуканої
і н ф о р м а ц і ї (ознака п о ш у к у ) і п о ч и н а є т ь с я її п о ш у к , в процесі я к о г о схема п о р і в н я н н я на
з б і ж н і с т ь о д н о ч а с н о п о р і в н ю є п е р ш и й біт о з н а к д а н и х всіх регістрів пам'яті, з першим
бітом асоціативної о з н а к и пошуку. Ті схеми, які з а ф і к с у в а л и неспівпадіння, формують
сигнал, що п е р е в о д и т ь в і д п о в і д н и й біт регістра збігів у н у л ь о в и й стан. Так само відбува­
ється п р о ц е с п о ш у к у і д л я р е ш т и н е з а м а с к о в а н и х бітів о з н а к и пошуку.
323

У результаті, одиниці зберігаються л и ш е в тих р о з р я д а х регістра збігів, які відповіда­


ють регістрам, де знаходиться ш у к а н а і н ф о р м а ц і я . К о н ф і г у р а ц і я о д и н и ц ь в регістрі збі­
гів використовується в якості адрес, за я к и м и п р о в о д и т ь с я з ч и т у в а н н я д а н и х із пам'яті.
Внаслідок того, що результати п о ш у к у м о ж у т ь мати кілька в а р і а н т і в , вміст регістра
збігів подається на п р и с т р і й к е р у в а н н я , де ф о р м у ю т ь с я сигнали с п о в і щ е н н я п р о резуль­
тати п о р і в н я н н я , а саме п р о те, що ш у к а н а і н ф о р м а ц і я не з н а й д е н а , м і с т и т ь с я в о д н о м у
чи кількох регістрах. Тому, при з ч и т у в а н н і спочатку п р о в о д и т ь с я аналіз результатів по­
рівняння. Потім, п р и н а я в н о с т і і н ф о р м а ц і ї п р о те, щ о ш у к а н а і н ф о р м а ц і я н е знайдена,
з ч и т у в а н н я відміняється, при повідомленні, що ш у к а н а і н ф о р м а ц і я м і с т и т ь с я в о д н о м у
регістрі, з ч и т у є т ь с я слово, на яке в к а з у є о д и н и ц я в регістрі збігів, а п р и повідомленні,
що ш у к а н а і н ф о р м а ц і я м і с т и т ь с я в кількох регістрах, с к и д а є т ь с я н а й с т а р ш а о д и н и ц я в
регістрі збігів і витягується відповідне їй слово. Ш л я х о м п о в т о р е н н я цієї операції по­
слідовно з ч и т у ю т ь с я всі слова.
З а п и с у п а м ' я т ь з а с о ц і а т и в н и м д о с т у п о м п р о в о д и т ь с я без в к а з і в к и к о н к р е т н о ї адре­
си, в п е р ш и й в і л ь н и й регістр. Д л я п о ш у к у в і л ь н о г о регістра в и к о н у є т ь с я операція з ч и ­
тування, в якій не замасковані т і л ь к и с л у ж б о в і р о з р я д и , що п о к а з у ю т ь , як д а в н о п р о в о ­
дилося з в е р н е н н я до к о ж н о г о регістра, і в і л ь н и м в в а ж а є т ь с я або п о р о ж н і й регістр, а б о
той, я к и й н а й д о в ш е не в и к о р и с т о в у в а в с я .
Головна перевага пам'яті з а с о ц і а т и в н и м д о с т у п о м в и з н а ч а є т ь с я т и м , що час п о ш у к у
інформації з а л е ж и т ь тільки від числа р о з р я д і в в о з н а ц і п о ш у к у і ш в и д к о с т і о п и т у р о з ­
рядів, і не з а л е ж и т ь від числа регістрів пам'яті.
Разом з т и м , ця п а м ' я т ь т а к о ж м а є р я д недоліків, до о с н о в н и х з я к и х слід віднести
наступні:
• Необхідність д в о к р а т н о г о з в е р н е н н я до однієї к о м і р к и п а м ' я т і п р и записі і при
зчитуванні числа в два р а з и с п о в і л ь н ю є в з а є м о д і ю п р и с т р о ї в к о м п ' ю т е р а з п а м ' я т т ю
з асоціативним д о с т у п о м в п о р і в н я н н і з в а р і а н т о м пам'яті, в я к і й м о ж л и в е л и ш е одне
звернення.
• Ця п а м ' я т ь має д о с и т ь с к л а д н у організацію, я к а в и м а г а є з а б е з п е ч е н н я д о с т у п у
до кожної к о м і р к и з входу та в и х о д у п а м ' я т і а б о з о б ' є д н а н о г о в х о д у - в и х о д у пам'яті,
причому п р и з ч и т у в а н н і необхідно п р о в о д и т и п о р і в н я н н я з а д а н о ї о з н а к и з о з н а к а м и
даних в регістрах пам'яті, а т а к о ж з а б е з п е ч и т и п о ш у к даних, о з н а к и я к и х співпали із за­
даною. Це в и м а г а є в е л и к и х затрат на елементи д о с т у п у та с п о в і л ь н ю є р о б о т у пам'яті.
• П р и с т в о р е н н і на основі п а м ' я т і з а с о ц і а т и в н и м д о с т у п о м б а г а т о к а н а л ь н о ї (6а-
гатопортової) п а м ' я т і необхідно з а б е з п е ч у в а т и о д н о ч а с н и й д о с т у п із к о ж н о г о к а н а л у до
кожної комірки пам'яті, з о д н о ч а с н и м п о р і в н я н н я м всіх о з н а к у комірках із ш у к а н и м и
ознаками, а т а к о ж з а б е з п е ч и т и п о ш у к даних, о з н а к и я к и х співпали із з а д а н о ю , що є п р о ­
блематичним з а в д а н н я м , о с о б л и в о п р и в е л и к и х о б ' є м а х пам'яті.
Базуючись на концепції асоціативного п о ш у к у м о ж н а п о б у д у в а т и цілу н и з к у струк­
тур пам'яті з а с о ц і а т и в н и м д о с т у п о м . К о н к р е т н а с т р у к т у р а в и з н а ч а є т ь с я т и м , як п о є д ­
нані наступні ч о т и р и основні елементи її організації:
• в и д п о ш у к у інформації;
• спосіб з ч и т у в а н н я і н ф о р м а ц і ї при м н о ж и н н и х збігах;
• спосіб з а п и с у інформації;
• варіант п о р і в н я н н я ознак.
324

У к о ж н о м у к о н к р е т н о м у з а с т о с у в а н н і п а м ' я т і з а с о ц і а т и в н и м д о с т у п о м з а в д а н н я по­
ш у к у і н ф о р м а ц і ї м о ж е ф о р м у л ю в а т и с я п о різному.
П р и простому пошуку, я к и й був розглянутий вище, потрібен повний збіг всіх розрядів
ознаки пошуку з о д н о й м е н н и м и р о з р я д а м и ознак слів, що зберігаються в регістрах пам'яті.
При складному пошуку можуть ставитись наступні завдання:
• Пошуку слів із максимальним або мінімальним значенням ознаки. При цьому бага­
тократна вибірка з пам'яті слова з максимальним або мінімальним значенням ознаки (з вик­
л ю ч е н н я м його з п о д а л ь ш о г о пошуку), по суті, є в п о р я д к о в а н о ю вибіркою інформації.
• П о ш у к слів, о з н а к а я к и х п о р і в н я н о з а с о ц і а т и в н о ю о з н а к о ю п о ш у к у є н а й б л и ж ­
чим більшим або м е н ш и м значенням. Ця операція також забезпечує проведення впо­
рядкованої вибірки інформації.
• З н а х о д ж е н н я слів, ч и с е л ь н е з н а ч е н н я о з н а к и в я к и х є б і л ь ш и м або м е н ш и м за­
даної в е л и ч и н и . П о д і б н и й підхід д о з в о л я є в е с т и п о ш у к слів з о з н а к а м и , що л е ж а т ь все­
р е д и н і а б о поза з а д а н и м и м е ж а м и .
О ч е в и д н о , щ о р е а л і з а ц і я с к л а д н и х методів п о ш у к у в и м а г а є в н е с е н н я відповідних
змін у с т р у к т у р у п а м ' я т і з а с о ц і а т и в н и м д о с т у п о м .
Важливим п и т а н н я м є організація зчитування з пам'яті з асоціативним доступом
інформації, коли з а с о ц і а т и в н о ю о з н а к о ю п о ш у к у с п і в п а д а ю т ь о з н а к и декількох слів. У
ц ь о м у в и п а д к у з а с т о с о в у є т ь с я один із д в о х підходів: в и к о р и с т о в у є т ь с я л а н ц ю г черговос­
т і а б о п р о в о д и т ь с я о п и т у в а н н я . В и к о р и с т а н н я л а н ц ю г а черговості д о з в о л я є п р о в о д и т и
з ч и т у в а н н я слів у п о р я д к у з р о с т а н н я н о м е р а регістра п а м ' я т і н е з а л е ж н о від величини
а с о ц і а т и в н и х о з н а к . П р и п р о в е д е н н і о п и т у в а н ь в п о р я д к о в у ю т ь с я ті р о з р я д и , які були
замасковані, і не б р а л и участі в пошуку. В і н ш о м у варіанті для ц и х цілей виділяються
спеціальні р о з р я д и регістрів.
Істотні відмінності в с т р у к т у р і п а м ' я т і з а с о ц і а т и в н и м д о с т у п о м м о ж у т ь бути пов'я­
зані з в и б р а н и м п р и н ц и п о м з а п и с у і н ф о р м а ц і ї . Раніше був о п и с а н и й варіант із записом
у н е з а й н я т и й регістр з н а й м е н ш и м н о м е р о м . На п р а к т и ц і з а с т о с о в у ю т ь с я й інші спо­
с о б и , н а п р и к л а д , за с п і в п а д і н н я м о з н а к , за чергою та інші. Н а й с к л а д н і ш и м є з а п и с із
с о р т у в а н н я м і н ф о р м а ц і ї на вході п а м ' я т і з а с о ц і а т и в н и м д о с т у п о м за в е л и ч и н о ю озна­
ки слова. Тут м і с ц е п о л о ж е н н я регістра, куди буде п о м і щ е н е нове слово, з а л е ж и т ь від
с п і в в і д н о ш е н н я о з н а к и з а п и с у в а н о г о слова і о з н а к слів, що в ж е зберігаються в пам'яті з
асоціативним доступом.
П р и побудові п а м ' я т і з а с о ц і а т и в н и м д о с т у п о м в и б и р а ю т ь один з ч о т и р ь о х варіан­
тів п о р і в н я н н я о з н а к , т о б т о організації п е р е г л я д у в м і с т у пам'яті: п а р а л е л ь н о за всіма
словами, п о с л і д о в н о за всіма словами, п а р а л е л ь н о за всіма р о з р я д а м и , послідовно за всі­
м а р о з р я д а м и . Ц і в а р і а н т и м о ж у т ь к о м б і н у в а т и с я . Н а з в а н і ч о т и р и варіанти п о р і в н я н ­
н я о з н а к в и з н а ч а ю т ь п р и н ц и п и п о б у д о в и схеми п о р і в н я н н я н а збіжність. Відповідно
до ц и х п р и н ц и п і в , м о ж е б у т и з а п р о п о н о в а н о кілька типів організації пам'яті з асоціа­
т и в н и м д о с т у п о м . У п а м ' я т і з п о в н и м п а р а л е л ь н и м а с о ц і а т и в н и м д о с т у п о м одночасно
п о р і в н ю ю т ь с я всі р о з р я д и о з н а к всіх слів п а м ' я т і (так з в а н и й о д н о ч а с н и й п о ш у к по сло­
ву). Це н а й ш в и д ш а та н а й с к л а д н і ш а з т о ч к и з о р у з а т р а т о б л а д н а н н я с т р у к т у р а пам'яті
з а с о ц і а т и в н и м д о с т у п о м . М о ж л и в е п о р і в н я н н я не всіх р о з р я д і в ознак слів пам'яті, а по
частинах, аж до п о р о з р я д н о г о п о р і в н я н н я , коли о д н о ч а с н о п о р і в н ю ю т ь с я з бітом асоці­
ативної о з н а к и п о ш у к у п о о д н о м у біту о з н а к и к о ж н о г о слова (так з в а н и й п о р о з р я д н и й
325

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


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

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


П е р ш и й тип організації п а м ' я т і з а с о ц і а т и в н и м д о с т у п о м - п а м ' я т ь з п о в н и м пара­
лельним а с о ц і а т и в н и м д о с т у п о м . Й р и к л а д о м к о н к р е т н о г о технічного в и к о н а н н я п а м ' я ­
ті такого т и п у м о ж е бути п а м ' я т ь к о м п ' ю т е р н о ї с и с т е м и РЕРЕ ф і р м и Bell Laboratories.
На рис. 9.16 п о к а з а н а загальна с т р у к т у р а п а м ' я т і з п о в н и м п а р а л е л ь н и м а с о ц і а т и в н и м
доступом. П а м ' я т ь складається з деякої кількості N к о м і р о к , в я к и х з б е р і г а ю т ь с я дані.
Кожна комірка м о ж е зберігати слово з д е я к о ю кількістю п д в і й к о в и х р о з р я д і в ( ш и р и н а
слова). На рис. 9.17 п р и в е д е н а будова к о м і р к и цієї пам'яті. К о ж н а т а к а комірка м о ж е
зберігати дані та п о р і в н ю в а т и їх з о з н а к о ю п о ш у к у п а р а л е л ь н о з і н ш и м и к о м і р к а м и . Тут
і далі р о з г л я д а є т ь с я в и п а д о к , коли з о з н а к о ю п о ш у к у п о р і в н ю ю т ь с я всі р о з р я д и слова,
хоча з р о з у м і л о , що м о ж е бути в з я т а і й о г о ч а с т и н а . Дані та сигнали к е р у в а н н я н а д х о д я т ь
від п р и с т р о ю к е р у в а н н я до к о ж н о ї к о м і р к и п а м ' я т і п а р а л е л ь н о .

Ознака Сигнали керування


пам'яттю
Запис ознаки
Сигнали керування
введенням-виведенням
Пристрій керування

Встановлення
Запис-читання Встановлення m i Результат
тригерів порівняння

Шукана
ознака
0
та дані
Комірка 2
Пристрій
збору
даних

Комірка N TN
V
Дані

Рис. 9.16. Структура пам'яті з повним паралельним асоціативним доступом

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


ком п о р і в н я н н я п р и с т р і й к е р у в а н н я н а д с и л а є к о м а н д у в с т а н о в л е н н я всіх тегових р о з ­
рядів в "1". Коли п р и с т р і й к е р у в а н н я ф о р м у є к о м а н д у п о р і в н я н н я , то к о ж н а комірка, в
якій міститься слово, о з н а к а я к о г о не з б і г а є т ь с я з о з н а к о ю пошуку, ф о р м у є сигнал, я к и й
викликає скид відповідного тегового р о з р я д у в "0". Після в и к о н а н н я даної к о м а н д и вста­
новленими в " 1 " з а л и ш а т ь с я тільки ті р о з р я д и , я к і в і д п о в і д а ю т ь к о м і р к а м , де відбувся
збіг з ознакою пошуку.
326

Комірка

Результат
Ознака або дане Читання порівняння
Схема
порівняння

А4А
Дане

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

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


Д р у г и й тип організації п а м ' я т і з а с о ц і а т и в н и м д о с т у п о м - п а м ' я т ь з н е п о в н и м па­
р а л е л ь н и м а с о ц і а т и в н и м д о с т у п о м . В цій п а м ' я т і п р о в о д и т ь с я послідовна о б р о б к а роз­
р я д і в слів. Тут логічні операції п о р і в н я н н я визначені тільки для одного або декількох
р о з р я д і в о з н а к даних, а не д л я всіх р о з р я д і в одночасно, як це є в пам'яті з п о в н и м пара­
л е л ь н и м а с о ц і а т и в н и м д о с т у п о м . Н а п р и к л а д , я к щ о п о р і в н я н н я визначені тільки для од­
ного р о з р я д у о з н а к даних, і п о т р і б н о з д і й с н и т и п о ш у к даних, о з н а к и я к и х з а й м а ю т ь роз­
р я д и 0-20, т о спочатку п о т р і б н о с ф о р м у в а т и к о м а н д у д л я одночасного п о р і в н я н н я лише
одного 0-го біту в к о ж н о м у записі, потім 1-го, і т. д. П а м ' я т ь даного т и п у м а є подібну за­
г а л ь н у с т р у к т у р у до п о п е р е д н ь о ї з тією відмінністю, що операції в пам'яті здійснюються
у вигляді ц и к л і в о п е р а ц і й над о к р е м и м и р о з р я д а м и і т р и в а л і с т ь операцій пропорційна
д о в ж и н і поля о з н а к и , я к е аналізується. Комірка даної п а м ' я т і з о б р а ж е н а на рис. 9.18.
Комірка

Схема
порівняння
Результат
Ознака або дане Читання

Дане
п Слово 1 0

Рис. 9.18. Комірка пам'яті з неповним паралельним асоціативним доступом


з послідовною обробкою розрядів слів

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


ється п о с л і д о в н а о б р о б к а р о з р я д і в , м о ж е б у т и п а м ' я т ь системи З Т А І І А Ґ ^ .

9.3.4. Пам'ять з послідовним асоціативним доступом


Третій т и п організації п а м ' я т і з а с о ц і а т и в н и м д о с т у п о м - п а м ' я т ь з послідовним
а с о ц і а т и в н и м д о с т у п о м . Тут логічні операції п о р і в н я н н я в и к о н у ю т ь с я л и ш е над одним
словом. Д о с т у п д о д а н и х при ц ь о м у з д і й с н ю є т ь с я п о с л і д о в н и м з а с т о с у в а н н я м логічних
о п е р а ц і й до о к р е м и х слів, які з б е р і г а ю т ь с я в пам'яті. Загальна с т р у к т у р а такої пам'яті
з о б р а ж е н а на рис. 9.19. О с к і л ь к и п р и послідовній о б р о б ц і слів такі властивості асоціа­
т и в н о ї п а м ' я т і як одночасність о п е р а ц і й та м а й ж е не з а л е ж н а від числа регістрів пам'яті
т р и в а л і с т ь п о ш у к у відсутні, т а к а п а м ' я т ь не в повній мірі відповідає п о н я т т ю пам'ятті з
асоціативним доступом.
327

Сигнали
керування
пам'яттю

Пристрій
керування

т Сигнали
керування

Ознака або дані


Схема
порівняння

Сигнали
керування
Слово 2 Слово 1 Слово 0


Рис. 9.19. Загальна структура пам'яті з послідовним асоціативним доступом

9.3.5. Пам'ять з частково асоціативним доступом


Ч е т в е р т и й т и п організації п а м ' я т і з а с о ц і а т и в н и м д о с т у п о м - п а м ' я т ь із ч а с т к о в о
асоціативним доступом. Всі слова цієї пам'яті ф о р м у ю т ь с я в п груп. К о ж н а група слів об­
робляється паралельно з усіма і н ш и м и групами елементів ш л я х о м послідовного переходу
від одного слова групи до іншого. О т ж е , потрібні засоби, які д о з в о л я ю т ь послідовно в и ­
бирати слова із груп для з а с т о с у в а н н я до н и х з а д а н и х логічних операцій. Оскільки слова в
групах в и б и р а ю т ь с я послідовно, то м о ж н а о б м е ж и т и с ь в и к о р и с т а н н я м п р и с т р о ї в пам'яті
з послідовним д о с т у п о м взамін більш дорогих пристроїв пам'яті з асоціативним досту­
пом. Загальна структура пам'яті з частково асоціативним д о с т у п о м подана на рис. 9.20.
Ознака , Сигнали керування
пам'яттю
Запис ознаки
Сигнали керування
введенням-виведенням
Пристрій керування

Встановлення Запис-читання Встановлення А


маски тригерів Результат
порівняння
Блок 0
ТО

Сіиво2 Спож 1 Сл.

Блок 1
Т1

Блок 2
а -

Блок п
Тп

Рис. 9.20. Загальна структура пам'яті з частково асоціативним доступом


328

9.4. Основна пам'ять

9.4.1. Структура основної пам'яті


До комірок основної пам'яті ( О П ) ц е н т р а л ь н и й п р о ц е с о р м о ж е звертатися безпосеред­
ньо, як і до регістрів регістрового файла. І н ф о р м а ц і я , що зберігається у зовнішній пам'яті,
стає д о с т у п н о ю процесору тільки після того, як буде переписана в основну пам'ять. Осно­
в н у п а м ' я т ь будують як п а м ' я т ь з д о в і л ь н и м д о с т у п о м . Така п а м ' я т ь представляє собою
масив комірок, а "довільний д о с т у п " означає, що з в е р н е н н я до будь-якої комірки займає
один і той же час і м о ж е п р о в о д и т и с я у довільній послідовності. Кожна комірка містить
фіксоване число з а п а м ' я т о в у ю ч и х елементів і має унікальну адресу. Це дозволяє розрізня­
ти комірки при зверненні до них для в и к о н а н н я операцій запису і з ч и т у в а н н я (рис. 9.21).
Шина а д р е с и

0 РгА а-1

Основна пам'ять

ПЗП
Контролер
о с н о в н о ї
озп пан' я т і

Дозвіл Читання/
р о б о т и з а п и с

Дина даних
X
Рис. 9.21. Структура основної пам'яті

Раніше ОП к о м п ' ю т е р і в б у д у в а л а с ь на ф е р о м а г н і т н и х кільцях. В сучасних комп'юте­


рах о с н о в н а п а м ' я т ь будується н а н а п і в п р о в і д н и к о в и х м і к р о с х е м а х .
У н а п і в п р о в і д н и к о в и х м і к р о с х е м а х з а с т о с о в у ю т ь с я елементи п а м ' я т і на основі: біпо­
л я р н и х т р а н з и с т о р і в ; я к і м а ю т ь с т р у к т у р у " м е т а л - о к и с е л - н а п і в п р о в і д н и к " ( М О П ) ; "ме-
т а л - н і т р и д - о к и с е л - н а п і в п р о в і д н и к " ( М Н О П ) ; а т а к о ж на основі п р и с т р о ї в із зарядовим
з в ' я з к о м ( П З С ) ; т р а н з и с т о р і в М О П з і з о л ь о в а н и м з а т в о р о м і ін.
О с н о в н а п а м ' я т ь м о ж е в к л ю ч а т и два т и п и п р и с т р о ї в : о п е р а т и в н і запам'ятовуючі
п р и с т р о ї ( О З П ) і постійні з а п а м ' я т о в у ю ч і п р и с т р о ї ( П З П ) .
О с н о в н у ч а с т и н у основної пам'яті у т в о р ю є О З П , я к и й н а з и в а ю т ь оперативним, тому
що він допускає як запис, так і з ч и т у в а н н я інформації, п р и ч о м у обидві операції викону­
ються подібним ч и н о м та п р а к т и ч н о за той же час. У англомовній літературі О З П відпові­
дає абревіатура R A M - Random Access Memory, т о б т о "пам'ять з д о в і л ь н и м доступом", що
не зовсім коректно, оскільки п а м ' я т т ю з довільним д о с т у п о м є т а к о ж П З П і регістровий
ф а й л процесора. Для більшості типів н а п і в п р о в і д н и к о в и х О З П характерна енергозалеж-
ність - навіть при к о р о т к о ч а с н о м у п е р е р и в а н н і ж и в л е н н я і н ф о р м а ц і я , що зберігається в
цій пам'яті, втрачається. Тому мікросхема О З П п о в и н н а бути постійно підключеною до
джерела ж и в л е н н я , а ця п а м ' я т ь м о ж е використовуватися тільки як тимчасова пам'ять.
Другу г р у п у н а п і в п р о в і д н и к о в и х п р и с т р о ї в о с н о в н о ї п а м ' я т і у т в о р ю ю т ь мікросхеми
П З П ( R O M — Read-Only Memory). П З П з а б е з п е ч у є з ч и т у в а н н я інформації, але не до­
пускає її зміни (у р я д і в и п а д к і в і н ф о р м а ц і я в П З П м о ж е б у т и змінена, але цей процес
с у т т є в о в і д р і з н я є т ь с я від з ч и т у в а н н я і в и м а г а є з н а ч н о б і л ь ш о г о часу).
329

9.4.2. Нарощування розрядності основної пам'яті


Розглянемо я к з д і й с н ю є т ь с я н а р о щ у в а н н я р о з р я д н о с т і о с н о в н о ї п а м ' я т і п р и ї ї побу­
дові на основі м і к р о с х е м . Коли р о з р я д н і с т ь к о м і р о к у мікросхемі є м е н ш о ю від р о з р я д ­
ності слів комп'ютера, в и н и к а є необхідність о б ' є д н а н н я декількох м і к р о с х е м пам'яті.
Н а р о щ у в а н н я р о з р я д н о с т і о с н о в н о ї п а м ' я т і р е а л і з у є т ь с я ш л я х о м о б ' є д н а н н я адрес­
них входів о к р е м и х м і к р о с х е м пам'яті. Я к щ о о б ' є д н а т и і н ф о р м а ц і й н і входи і виходи п
мікросхем ( М С , М С ^ . . . , МС ), к о ж н а з я к и х м а є 2 о д н о р о з р я д н и х к о м і р о к , з входами і
0
т

виходами п а м ' я т і в і д п о в і д н о до рис. 9.22, то о т р и м а є т ь с я п а м ' я т ь з б і л ь ш е н о ї р о з р я д н о с ­


ті. О д е р ж а н у с у к у п н і с т ь м і к р о с х е м н а з и в а ю т ь модулем пам'яті. Модулем м о ж н а в в а ж а ­
ти і одну мікросхему, я к щ о в о н а в ж е м а є п о т р і б н у р о з р я д н і с т ь .

L. J
MCn-t MC I MCo

il Ji I—Ï T~~~E
Ао

Am
CS

Рис. 9.22. Структура модуля пам'яті з п мікросхем

Тут п о з н а ч е н н я сигналів CS та WE о з н а ч а є в і д п о в і д н о в и б і р к у к р и с т а л а (Cristal Sele­


ct) та дозвіл з а п и с у (Write Enable).

9.4.3. Нарощування ємності основної пам'яті


Ємність о с н о в н о ї п а м ' я т і с у ч а с н и х к о м п ' ю т е р і в є н а с т і л ь к и в е л и к о ю , що її не м о ж н а
реалізувати на базі однієї м і к р о с х е м и . Для о т р и м а н н я необхідної є м н о с т і п о т р і б н о пев­
ним ч и н о м о б ' є д н а т и декілька модулів п а м ' я т і м е н ш о ї є м н о с т і . У з а г а л ь н о м у в и п а д к у
основна п а м ' я т ь к о м п ' ю т е р а п р а к т и ч н о з а в ж д и м а є блокову структуру, т о б т о м і с т и т ь
декілька модулів.
П р и в и к о р и с т а н н і блокової с т р у к т у р и п а м ' я т і , що с к л а д а є т ь с я з S модулів, адреса
комірки п е р е т в о р и т ь с я в пару (р, г), де р - н о м е р м о д у л я , г - адреса к о м і р к и всередині
модуля. Відомі т р и схеми р о з п о д і л у р о з р я д і в а д р е с и А м і ж р та г.
В блоковій схемі р о з п о д і л у р о з р я д і в адреси (рис. 9.23) н о м е р м о д у л я р в и з н а ч а ю т ь
старші k р о з р я д і в а д р е с и , які п о с т у п а ю т ь на входи в и б о р у модуля CS (Chip Select).

Адреса
Номер модуля Адреса в модулі
основної нам яті

РгД РгД І Р

-» CS Модуль 0 -» CS Модуль 1 Qg Модуль S-1

Рис. 9.23. Блокова структура пам'яті з блоковою схемою розподілу розрядів адреси
330

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


з а б е з п е ч у є т ь с я о к р е м и м модулем пам'яті. Для з в е р н е н н я до о с н о в н о ї пам'яті використо­
вується п - р о з р я д н а адреса (п = т + к), т м о л о д ш и х р о з р я д і в якої (А - А ) поступають 0

п а р а л е л ь н о до регістра адреси РгА всіх модулів пам'яті ( М П ) і в и б и р а ю т ь в к о ж н о м у з


н и х одну комірку. С т а р ш і к р о з р я д і в а д р е с и (А _ - А ) МІСТЯТЬ н о м е р модуля. У функ­
п 1 т

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


с у м а р н і й є м н о с т і складових, а ш в и д к о д і я - швидкодії о к р е м о г о модуля.
В ц и к л і ч н і й схемі р о з п о д і л у р о з р я д і в адреси (рис. 9.24) н о м е р р (р = 0,1,..., Б-І) моду­
ля в и з н а ч а ю т ь к м о л о д ш и х р о з р я д і в адреси.

Адреса
Адреса в модулі Номер модуля
основної пам'яті

ЕЙ І ! І РгА РгД І Р

Модуль 0 Модуль 1 £д Модуль Б-1

Рис. 9.24. Блокова структура пам'яті з циклічною схемою розподілу розрядів адреси

А д р е с н и й п р о с т і р цієї п а м ' я т і , як і а д р е с н и й п р о с т і р п а м ' я т і з блоковою схемою роз­


поділу р о з р я д і в адреси, р о з б и т и й на г р у п и п о с л і д о в н и х адрес, і к о ж н а така група за­
б е з п е ч у є т ь с я о к р е м и м модулем пам'яті. Для з в е р н е н н я д о о с н о в н о ї пам'яті використо­
в у є т ь с я п - р о з р я д н а адреса (п = т + к), т с т а р ш и х р о з р я д і в якої ( А ! - А ) поступають п к

п а р а л е л ь н о до регістра адреси РгА всіх модулів пам'яті ( М П ) і в и б и р а ю т ь в кожному з


н и х о д н у комірку. М о л о д ш і к р о з р я д і в адреси (А^ - А ) м і с т я т ь н о м е р модуля. У функ­
0

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


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

9.4.4. Розшарування пам'яті


Крім п р и д а т н о с т і до н а р о щ у в а н н я є м н о с т і , блокова побудова пам'яті має іще одну
п е р е в а г у - д о з в о л я є с к о р о т и т и час д о с т у п у до інформації. Це м о ж л и в о з а в д я к и потен­
ц і й н о м у паралелізму, в л а с т и в о м у блоковій організації, я к и й д о з в о л я є досягти меншо­
го ч а с у д о с т у п у до і н ф о р м а ц і ї за р а х у н о к паралельної р о б о т и багатьох модулів пам'яті.
О д н у з в и к о р и с т о в у в а н и х д л я ц ь о г о м е т о д и к н а з и в а ю т ь р о з ш а р у в а н н я м пам'яті. У її
основі л е ж и т ь так з в а н е ч е р г у в а н н я адрес, що п о л я г а є в зміні системи розподілу адрес
м і ж м о д у л я м и пам'яті.
П р и й о м ч е р г у в а н н я а д р е с б а з у є т ь с я на такій в л а с т и в о с т і п р о г р а м , як локальність за
з в е р н е н н я м , згідно з я к о ю п о с л і д о в н и й д о с т у п до п а м ' я т і з а з в и ч а й п р о в о д и т ь с я до комі­
рок, що м а ю т ь суміжні адреси. І н ш и м и словами, я к щ о в д а н и й м о м е н т виконується звер­
н е н н я до к о м і р к и з адресою 7, то н а с т у п н е з в е р н е н н я , найімовірніше, буде здійснюватись
до к о м і р к и з адресою 8, пізніше 9 і т. д. С т р у к т у р а п р и с т р о ю пам'яті, в я к о м у використано
ч е р г у в а н н я адрес з метою п р и с к о р е н н я д о с т у п у до даних, наведена на рис. 9.25.
331

Шина адрес

РгА

ДШ

РгАО РгА1 РгА2 РгАЗ

МП МП МП МП
о 2 3

РгДО РгД1 РгД2 РгДЗ

РгД
Шина даних

Рис. 9.25. Структура пристрою з розшаруванням пам'яті

Тут два р о з р я д и а д р е с и з регістра адреси РгА п о с т у п а ю т ь на д е ш и ф р а т о р Д Ш , в и ­


ходи якого вказують, до я к о г о з ч о т и р ь о х регістрів а д р е с РгАО-РгАЗ модулів п а м ' я т і
МПО-МПЗ м а ю т ь бути з а п и с а н і всі інші р о з р я д и з регістра а д р е с и РгА. П р и н ц и п р о б о т и
пристрою з р о з ш а р у в а н н я м п а м ' я т і п о я с н ю є рис. 9.26. Як в и д н о з рисунку, до к о ж н о г о з
чотирьох модулів послідовні дані з а п и с у ю т ь с я по черзі.
Адреса Адрес,
слона слова

0 2 З
4 6 7
8 10 11
12 13 14 15
Рис. 9.26. Принцип роботи пристрою з розшаруванням пам'яті

Тим с а м и м з а б е з п е ч у є т ь с я п а р а л е л ь н а р о б о т а модулів п а м ' я т і М П О - М П З , щ о д о з в о ­


ляє в Б разів, де Б - кількість модулів п а м ' я т і (в ч о т и р и р а з и д л я прикладу, п р и в е д е н о г о
на рис. 9.26) п р и с к о р и т и р о б о т у пам'яті.
Традиційні способи р о з ш а р у в а н н я п а м ' я т і д о б р е п р а ц ю ю т ь у р а м к а х одного з а в д а н ­
ня, для якого х а р а к т е р н а властивість л о к а л ь н о с т і .
У б а г а т о п р о ц е с о р н и х системах із з а г а л ь н о ю п а м ' я т т ю , де з а п и т и на д о с т у п до п а м ' я т і
достатньо незалежні, н е в и к л ю ч е н и й і н ш и й підхід, я к и й м о ж н а р о з г л я д а т и я к р о з в и т о к
ідеї р о з ш а р у в а н н я пам'яті. Для цього в систему в к л ю ч а ю т ь декілька к о н т р о л е р і в пам'яті,
щ о д о з в о л я є о к р е м и м м о д у л я м п р а ц ю в а т и а в т о н о м н о . Е ф е к т и в н і с т ь даного п р и й о м у за­
лежить від частоти н е з а л е ж н и х з в е р н е н ь д о р і з н и х модулів. К р а щ о г о р е з у л ь т а т у м о ж н а
чекати при великому числі модулів, що з м е н ш у є вірогідність п о с л і д о в н и х з в е р н е н ь до
одного і того ж модуля пам'яті.

9.5. Оперативний запам'ятовуючий пристрій


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

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


двійкові з н а ч е н н я O i l . П р и з а п и с у і н ф о р м а ц і ї з а п а м ' я т о в у ю ч и й елемент встановлюєть­
ся в один із двох м о ж л и в и х станів. Д л я в и з н а ч е н н я п о т о ч н о г о стану запам'ятовуючого
елемента його вміст м а є б у т и з ч и т а н и й .
В мікросхемах пам'яті реалізується координатний п р и н ц и п адресації комірок, згідно
з я к и м комірка із з а д а н и м н о м е р о м л е ж и т ь на перетині відповідних вертикальної та го­
ризонтальної ліній. Запам'ятовуючі елементи, об'єднані загальним горизонтальним про­
відником, п р и й н я т о називати р я д к о м . Запам'ятовуючі елементи, підключені до загального
вертикального провідника, н а з и в а ю т ь стовпцем. Кожній горизонтальній лінії відповідає
один з кодів адреси рядка, а кожній вертикальній лінії відповідає один з кодів адреси стовп­
ця. На рис. 9.27 приведено п р и к л а д матриці, я к а складається з 64-х комірок пам'яті з коор­
д и н а т н и м п р и н ц и п о м адресації. Три молодших р о з р я д и адреси (А , А , A ) вказують адресу
2 Q

рядка, а три старших р о з р я д и адреси (А , А , А ) вказують адресу стовпця. Так, комірка 27


5 4 3

л е ж и т ь на перетині горизонтальної лінії з кодом 011 та вертикальної лінії з кодом 011.

А5 А4 A3

Вертикальні лінії
Рис. 9.27. Матриця комірок пам'яті з координатним принципом адресації

Адреса комірки, що п о с т у п а є по ш и н і адреси в м і к р о с х е м у пам'яті, пропускається


ч е р е з логіку вибору, де в о н а р о з д і л я є т ь с я на дві складові: а д р е с у р я д к а і адресу стовпця.
А д р е с и р я д к а і с т о в п ц я з а п а м ' я т о в у ю т ь с я в і д п о в і д н о в регістрі адреси р я д к а і регістрі
а д р е с и с т о в п ц я м і к р о с х е м и (рис. 9.28). Для з м е н ш е н н я числа контактів мікросхеми адреси
р я д к а і с т о в п ц я в більшості м і к р о с х е м подаються в м і к р о с х е м у через одні і ті ж контакти
п о с л і д о в н о в часі ( м у л ь т и п л е к с у ю т ь с я ) . К о ж е н регістр з ' є д н а н и й зі своїм дешифратором.
Виходи д е ш и ф р а т о р і в у т в о р ю ю т ь систему г о р и з о н т а л ь н и х і в е р т и к а л ь н и х провідників,
д о я к и х підключені м а т р и ц і к о м і р о к пам'яті, п р и ц ь о м у к о ж н а комірка пам'яті розташо­
в а н а на перетині одного г о р и з о н т а л ь н о г о й одного в е р т и к а л ь н о г о провідників.
К р і м а д р е с н и х в е р т и к а л ь н и х п р о в і д н и к і в у м і к р о с х е м і п о в и н н а бути така ж кіль­
кість і н ф о р м а ц і й н и х п р о в і д н и к і в , п о я к и х п е р е д а в а т и м е т ь с я і н ф о р м а ц і я , я к а зчитується
та з а п и с у є т ь с я до пам'яті. С у к у п н і с т ь з а п а м ' я т о в у ю ч и х елементів і логічних схем, пов'я­
з а н и х із в и б о р о м р я д к і в і с т о в п ц і в , н а з и в а ю т ь я д р о м м і к р о с х е м и пам'яті (рис. 9.28).
333

М а т р и ц я комірок

Вхідні/вихідні
дані

Рис. 9.28. Ядро мікросхеми пам'яті

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


внішнім світом. У її з а в д а н н я , з о к р е м а , в х о д и т ь п р о в е д е н н я к о м у т а ц і ї п о т р і б н о г о стовп­
ця на вихід при ч и т а н н і і на вхід п р и записі (рис. 9.29), я к а з д і й с н ю є т ь с я через вихідні
ключі, що керуються л о г і ч н и м и с х е м а м и з а п и с у і з ч и т у в а н н я . П р и ц ь о м у логічні схеми
запису і з ч и т у в а н н я (логіка з а п и с у та логіка з ч и т у в а н н я ) , а т а к о ж логіка к е р у в а н н я , я к а
задає р е ж и м и р о б о т и пам'яті, п р а ц ю ю т ь н а основі аналізу з о в н і ш н і х сигналів к е р у в а н н я
пам'яттю / R A S , /СЕ, / C S , / W E , / C A S .

Лотка
зчігтуваккя

Адреса

/ОЕ
/RAS
Легка
Ядро
/СЕ мікросхеми пам'яті
каруванки
/CS
.WE
/CAS

Логіка
даггсу

Рис. 9.29. Інтерфейсна логіка мікросхеми пам'яті

Для синхронізації п р о ц е с і в фіксації й о б р о б к и адресної і н ф о р м а ц і ї всередині м і к р о ­


схеми адреса рядка (RA) с у п р о в о д ж у є т ь с я сигналом R A S (Row Address Strobe - с т р о б
рядка), а адреса с т о в п ц я ( C A ) - с и г н а л о м C A S (Column Address Strobe - с т р о б с т о в п ц я ) .
Щоб с т р о б у в а н н я було н а д і й н и м , ці с и г н а л и п о д а ю т ь с я із з а т р и м к о ю , д о с т а т н ь о ю д л я
завершення перехідних процесів на ш и н і а д р е с и та в а д р е с н и х л і н і я х м і к р о с х е м и .
Сигнал в и б о р у м і к р о с х е м и CS (Chip Select) д о з в о л я є р о б о т у м і к р о с х е м и і в и к о р и с ­
товується д л я в и б о р у певної м і к р о с х е м и в системах п а м ' я т і , що с к л а д а ю т ь с я з декількох
мікросхем.
Сигнал WE (Write Enable - дозвіл з а п и с у ) в и з н а ч а є в и д в и к о н у в а н о ї операції (зчиту­
вання або запис).
334

Н а ф і з и ч н у о р г а н і з а ц і ю ядра, я к м а т р и ц ю о д н о р о з р я д н и х з а п а м ' я т о в у ю ч и х елемен­


тів, н а к л а д а є т ь с я логічна о р г а н і з а ц і я пам'яті, під я к о ю р о з у м і є т ь с я р о з р я д н і с т ь мікро­
схеми, т о б т о кількість ліній в в е д е н н я - в и в е д е н н я . Р о з р я д н і с т ь мікросхеми визначає
кількість з а п а м ' я т о в у ю ч и х елементів, що м а ю т ь о д н у і ту ж адресу (таку сукупність за­
п а м ' я т о в у ю ч и х елементів н а з и в а ю т ь к о м і р к о ю ) , т о б т о к о ж е н стовпець містить стільки
р о з р я д і в , скільки є ліній в в е д е н н я - в и в е д е н н я даних.
Для п р и с к о р е н н я р о б о т и п а м ' я т і на її і н ф о р м а ц і й н о м у вході з а з в и ч а й встановлю­
ються вхідний та в и х і д н и й регістри д а н и х (на рис. 9.29 не показані). З а п и с у в а н а інфор­
мація, що п о с т у п а є по ш и н і даних, с п о ч а т к у з а н о с и т ь с я у вхідний регістр даних, а потім
у в и б р а н у комірку. П р и в и к о н а н н і операції з ч и т у в а н н я і н ф о р м а ц і я з комірки до її видачі
на ш и н у д а н и х б у ф е р и з и р у є т с я у в и х і д н о м у регістрі даних. На весь час, поки мікросхема
п а м ' я т і не в и к о р и с т о в у є ш и н у даних, і н ф о р м а ц і й н і виходи мікросхеми переводяться в
третій ( в и с о к о і м п е д а н с н и й ) стан. К е р у в а н н я п е р е м и к а н н я м в третій стан забезпечуєть­
ся сигналом ОЕ (Output Enable - дозвіл видачі в и х і д н и х сигналів). Цей сигнал активізу­
ється при в и к о н а н н і операції з ч и т у в а н н я .
Для б і л ь ш о с т і п е р е р а х о в а н и х в и щ е сигналів к е р у в а н н я а к т и в н и м зазвичай вважа­
ється їх н и з ь к и й рівень, що і п о к а з а н о на рис. 9.29.
К е р у в а н н я о п е р а ц і я м и з о с н о в н о ю п а м ' я т т ю з д і й с н ю є т ь с я к о н т р о л е р о м пам'яті (рис.
9.21). З а з в и ч а й цей к о н т р о л е р в х о д и т ь до складу ц е н т р а л ь н о г о п р о ц е с о р а або реалізуєть­
ся у вигляді з о в н і ш н ь о г о по в і д н о ш е н н ю до п а м ' я т і п р и с т р о ю . В останніх типах мікро­
схем п а м ' я т і ч а с т и н а ф у н к ц і й к о н т р о л е р а п о к л а д а є т ь с я на м і к р о с х е м у пам'яті. Хоча ро­
бота м і к р о с х е м и п а м ' я т і м о ж е б у т и о р г а н і з о в а н а як по с и н х р о н н і й , так і по асинхронній
схемі, к о н т р о л е р п а м ' я т і є с и н х р о н н и м п р и с т р о є м , т о б т о він спрацьовує в и к л ю ч н о по
т а к т о в и х імпульсах. З цієї п р и ч и н и операції з п а м ' я т т ю п р и й н я т о описувати з прив'яз­
кою до тактів. У з а г а л ь н о м у в и п а д к у на к о ж н у т а к у о п е р а ц і ю потрібно як мінімум п'ять
тактів, які в и к о р и с т о в у ю т ь с я у н а с т у п н і й послідовності:
• Вказівка т и п у операції ( з ч и т у в а н н я а б о запис) і в с т а н о в л е н н я адреси рядка.
• Формування сигналу RAS.
• Встановлення адреси стовпця.
• Формування сигналу CAS.
• П о в е р н е н н я сигналів R A S і C A S в н е а к т и в н и й стан.
Д а н и й перелік враховує далеко не всі необхідні дії, н а п р и к л а д , регенерацію вмісту
пам'яті в динамічних ОЗП.

9.6. Постійний запам'ятовуючий пристрій

9.6.7. Організація роботи постійного запам'ятовуючого пристрою


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

Як в и д н о з рис. 9.30, де п о к а з а н о і н т е р ф е й с П З П , в н ь о м у відсутній сигнал з а п и с у -


зчитування даних, як це є в О З П , і дане з ч и т у є т ь с я з П З П в регістр д а н и х РгД при п о ­
данні з регістра адреси РгА на вхід П З П а д р е с и відповідної к о м і р к и п а м ' я т і .
Шина адрес
і
РгА

ПЗП

і
РгД
^ Шина даних

Рис. 9.30. Інтерфейс ПЗП

Для п і д в и щ е н н я швидкодії і з б і л ь ш е н н я о б ' є м у П З П в и к о р и с т о в у ю т ь с я ті ж підходи,


що і для О З П . М і к р о с х е м и П З П , як і м і к р о с х е м и О З П , побудовані за п р и н ц и п о м ма­
тричної с т р у к т у р и н а к о п и ч у в а ч а , де у вузлах р о з м і щ е н і з а п а м ' я т о в у ю ч і елементи, під­
ключені до а д р е с н и х та і н ф о р м а ц і й н и х ліній В я к о с т і з а п а м ' я т о в у ю ч и х елементів т у т
можуть бути в и к о р и с т а н і п р о в і д н и к и , діоди а б о т р а н з и с т о р и , які м о ж у т ь б у т и з а м к н у т і
(відповідає значенню 1), або р о з і м к н у т і (відповідає з н а ч е н н ю 0).
О с н о в н и м р е ж и м о м р о б о т и П З П є з ч и т у в а н н я інформації, я к е м а л о в і д р і з н я є т ь с я
від аналогічної операції в О З П як за організацією, так і за т р и в а л і с т ю . С а м е ця о б с т а в и н а
підкреслює а н г л о м о в н у назву П З П - R O M (Read-Only M e m o r y - п а м я т ь тільки для з ч и ­
тування). В той же час з а п и с в П З П у п о р і в н я н н і зі з ч и т у в а н н я м з а з в и ч а й є с к л а д н і ш и м
і потребує в е л и к и х в и т р а т часу і енергії. З а н е с е н н я і н ф о р м а ц і ї в П З П н а з и в а ю т ь програ­
м у в а н н я м або "прошивкою". Сучасні П З П р е а л і з у ю т ь с я у вигляді н а п і в п р о в і д н и к о в и х
мікросхем, які за м о ж л и в о с т я м и і с п о с о б а м и п р о г р а м у в а н н я р о з д і л я ю т ь на:
• з а п р о г р а м о в а н і п р и виготовленні;
• о д н о р а з о в о п р о г р а м о в н і після в и г о т о в л е н н я ;
• багаторазово програмовні.

9.6.2. Запрограмований при виготовленні постійний запам'ятовуючий


пристрій
Групу П З П , що п р о г р а м у ю т ь с я при виготовленні, у т в о р ю ю т ь так звані масочні п р и ­
строї і саме до них п р и й н я т о застосовувати абревіатуру П З П . У літературі більш п о ш и р е ­
не позначення різних варіантів П З П с к о р о ч е н н я м и , ніж англійські н а з в и ; т о м у надалі та­
кож в и к о р и с т о в у в а т и м е м о аналогічну сп-стему. Для м а с к о в а н и х П З П т а к и м п о з н а ч е н н я м
є R O M , співпадаючий із з а г а л ь н о ю назвою всіх типів П З П . Іноді такі м і к р о с х е м и імену­
ють M R O M (Mask Programmable R O M - П З П , щ о п р о г р а м у ю т ь с я з а д о п о м о г о ю маски).
Занесення і н ф о р м а ц і ї в масковані П З П складає ч а с т и н у в и р о б н и ч о г о п р о ц е с у і п о ­
лягає у підключенні або не підключенні з а п а м ' я т о в у ю ч о г о елемента до р о з р я д н о ї лінії
зчитування. З а л е ж н о від ц ь о г о із з а п а м ' я т о в у ю ч о г о елемента з а в ж д и з ч и т у в а т и м е т ь с я
1 або 0. В ролі п е р е м и ч к и в и с т у п а є т р а н з и с т о р , р о з т а ш о в а н и й на п е р е т и н і адресної і
розрядної ліній. Які саме з а п а м ятовуючі елементи п о в и н н і бути підключені до вихідної
лінії визначає маска, що д о з в о л я є в и б р а т и в и з н а ч е н і д і л я н к и кристала. П р и с т в о р е н н і
маскованих П З П з а с т о с о в у ю т ь с я різні технології. У п е р ш о м у в и п а д к у м а с к а п р о с т о не
336

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


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

9.6.3. Одноразово запрограмований після виготовлення постійний


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

Логічні
добутки
Програмовані вентилі А Б О

о о

о 0 —

/
0-

Фіксовані вентилі І

Рис. 9.31. Структура програмованого ПЗП

О д н о р а з о в о п р о г р а м о в а н и й П З П складається з двох м а т р и ц ь І та А Б О . Потрібно зау­


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

Кожна функція ф о р м у є т ь с я однією коміркою А Б О , яка має 2п входів. З'єднання між


виходами результуючих добутків і входами комірок А Б О задаються користувачем ш л я х о м
програмування комірок, які в і д о б р а ж а ю т ь з ' є д н а н н я д о б у т к у та к о м і р к и А Б О . В п р о т и ­
вагу фіксованого м а с и в у в е н т и л і в І м а с и в в е н т и л і в А Б О є п р о г р а м о в н и м . На рис. 9.31
показано збільшене з о б р а ж е н н я п р о г р а м о в н о ї к о м і р к и . Ц я комірка в к л ю ч а є ключ, я к и й
може бути в і д к р и т и м а б о з а к р и т и м . З а к р и т и й ключ о з н а ч а є в к л ю ч е н н я д о б у т к у до ре­
зультату, ф о р м у ю ч и ф у н к ц і ю 1 для вхідної комбінації. Коли ж ключ в і д к р и т и й , д о б у т о к
не включається і для ц ь о г о входу ф у н к ц і я рівна 0.
Оскільки П З П генерує всі м о ж л и в і логічні д о б у т к и , будь-яка ф у н к ц і я п з м і н н и х
може бути р е а л і з о в а н а .
О д н о р а з о в о п р о г р а м о в н и х П З П є кілька т и п і в
М і к р о с х е м и т и п у P R O M (Programmable R O M - п р о г р а м о в а н і П З П ) і н ф о р м а ц і я м о ж е
бути з а п и с а н а тільки о д н о р а з о в о . П е р ш и м и т а к и м и П З П стали м і к р о с х е м и п а м яті н а
базі п л а в к и х з а п о б і ж н и к і в . У п о ч а т к о в і й мікросхемі у всіх вузлах адресні лінії з'єдна­
ні з р о з р я д н и м и . З а н е с е н н я і н ф о р м а ц і ї в P R O M п р о в о д и т ь с я е л е к т р и ч н и м и с и г н а л а м и
шляхом п е р е п а л ю в а н н я о к р е м и х п л а в к и х п е р е м и ч о к , і м о ж е б у т и в и к о н а н о п о с т а ч а л ь ­
ником або с п о ж и в а ч е м через д е я к и й час після в и г о т о в л е н н я м і к р о с х е м и . Подібні П З П
випускалися в рамках серій К556 і К1556. П і з н і ш е з я в и л и с я м і к р о с х е м и , де в п е р е м и ч к у
входили два діоди, включені назустріч о д и н одному. В процесі п р о г р а м у в а н н я м о ж н а
було в и д а л и т и п е р е м и ч к у за д о п о м о г о ю е л е к т р и ч н о г о п р о б о ю одного з ц и х діодів. У
будь-якому варіанті для з а п и с у і н ф о р м а ц і ї п о т р і б н е с п е ц і а л ь н е у с т а т к у в а н н я - п р о г р а -
матори. О с н о в н и м и недоліками даного в и д у П З П були в е л и к и й відсоток б р а к у і н е о б ­
хідність спеціального термічного т р е н у в а н н я після п р о г р а м у в а н н я , без я к о г о надійність
зберігання даних була н е в и с о к о ю
Щ е один вид о д н о р а з о в о п р о г р а м о в а н о г о П З П ц е O T P E P R O M (One Time Program­
mable E P R O M E P R O M з о д н о р а з о в и м п р о г р а м у в а н н я м ) . У його основі л е ж и т ь к р и с т а л
E E P R O M (див. н и ж ч е ) , але п о м і щ е н и й в д е ш е в и й н е п р о з о р и й п л а с т и к о в и й к о р п у с без
кварцевого вікна, із за чого він м о ж е бути з а п р о г р а м о в а н и й л и ш е один р а з

9.6.4. Багаторазово програмований постійний запам'ятовуючий пристрій


В б а г а т о р а з о в о п р о г р а м о в а н и х П З П в п р о г р а м о в а н и х комірках в и к о р и с т о в у ю т ь с я
М О П т р а н з и с т о р и , п а р а м е т р и я к и х з м і н ю ю т ь с я під в п л и в о м високої напруги. Вміст
ПЗП може бути с т е р т и й з а с т о с у в а н н я м ще одної високої н а п р у г и або з а с т о с у в а н н я м
ультрафіолетового світла
П р о ц е д у р а п р о г р а м у в а н н я т а к и х П З П складається з д в о х етапів. С п о ч а т к у п р о в о ­
диться с т и р а н н я вмісту всіх а б о ч а с т и н и комірок, а потім п р о в о д и т ь с я з а п и с нової ін­
формації. У ц ь о м у класі П З П в и д і л я ю т ь декілька груп
• E P R O M (Erasable Programmable R O M - п р о г р а м о в а н і П З П , вміст я к и х м о ж е бути
стертий);
• E E P R O M (Electrically Erasable Programmable R O M п р о г р а м о в а н і П З П , вміст
яких може бути стертий електрично);
• флеш п а м ' я т ь
У E P R O M запис інформації проводиться е л е к т р и ч н и м и сигналами, так само як в P R O M ,
проте перед операцією запису вміст всіх комірок повинен бути приведений до однакового
стану (стерто) шляхом дії на мікросхему ультрафіолетовим о п р о м і н ю в а н н я м . Кристал по
338

мішається в керамічний корпус, що має невелике кварцове вікно, через яке і проводиться
о п р о м і н ю в а н н я . Щоб запобігти в и п а д к о в о м у с т и р а н н ю інформації, після опромінювання
кварцове вікно заклеюють н е п р о з о р о ю плівкою. П р о ц е с с т и р а н н я може виконуватися ба­
гато разів. Кожне с т и р а н н я з а й м а є близько 20 хвилин. Ц и к л програмування займає декіль­
ка сотень мілісекунд. Час з ч и т у в а н н я є близьким до показників R O M і D R A M .
У п о р і в н я н н і з P R O M м і к р о с х е м и E P R O M є д о р о ж ч и м и , але завдяки можливості
б а г а т о к р а т н о г о п е р е п р о г р а м у в а н н я в о н и часто з а с т о с о в у ю т ь с я . Д а н и й вид мікросхем
в и п у с к а в с я в р а м к а х серії К573.
П р и в а б л и в і ш и м варіантом багатократно програмованої пам'яті є програмована постій­
на пам'ять E E P R O M , вміст якої м о ж е бути стертий електрично. С т и р а н н я і запис інфор­
мації в цю п а м ' я т ь п р о в о д я т ь с я п о б а й т о в о , п р и ч о м у с т и р а н н я - не окремий процес, а
л и ш е етап, що відбувається а в т о м а т и ч н о при записі. О п е р а ц і я запису займає істотно біль­
ше часу ніж з ч и т у в а н н я - декілька сотень м і к р о с е к у н д на байт. У мікросхемі використо­
вується той же п р и н ц и п зберігання інформації, що і в E P R O M . П р о г р а м у в а н н я E P R O M
не в и м а г а є спеціального п р о г р а м а т о р а і реалізується з а с о б а м и самої мікросхеми. Випус­
к а ю т ь с я два варіанти м і к р о с х е м E E P R O M : з п о с л і д о в н и м і п а р а л е л ь н и м доступом, при­
ч о м у п е р ш и х з н а ч н о більше. У E E P R O M з д о с т у п о м по послідовному каналу (SEEPROM
- Serial E E P R O M ) адреси, дані і к о м а н д и передаються по о д н о м у провіднику і синхронізу­
ються імпульсами на т а к т о в о м у вході. Перевагою S E E P R O M є малі габарити і мінімальне
ч и с л о ліній в в е д е н н я - в и в е д е н н я , а недоліком - в е л и к и й час доступу. S E E P R O M випуска­
ються в рамках серій м і к р о с х е м 24Сххх, 25Сххх і З З С х х х , а паралельні E E P R O M - в складі
серії 28Сххх.
В ц і л о м у E E P R O M є д о р о ж ч и м и , н і ж E P R O M , а м і к р о с х е м и мають м е н ш щільне па­
к у в а н н я комірок, т о б т о м е н ш у ємність.
Відносно н о в и й в и д н а п і в п р о в і д н и к о в о ї п а м ' я т і - це ф л е ш - п а м ' я т ь (назву flash мож­
на п е р е в е с т и як "спалах блискавки", що підкреслює в і д н о с н о високу швидкість пере­
п р о г р а м у в а н н я ) . Вперше а н о н с о в а н а у середині 80-х років, ф л е ш - п а м ' я т ь багато в чому
схожа н а E E P R O M , але в и к о р и с т о в у є о с о б л и в у технологію побудови запам'ятовуючих
елементів. А н а л о г і ч н о E E P R O M , у ф л е ш - п а м ' я т і с т и р а н н я і н ф о р м а ц і ї п р о в о д и т ь с я елек­
т р и ч н и м и с и г н а л а м и , але не п о б а й т о в о , а по блоках або повністю. Тут слід зазначити, що
існують м і к р о с х е м и ф л е ш - п а м ' я т і з р о з б и т т я м на д у ж е дрібні блоки (сторінки) з авто­
м а т и ч н и м п о с т о р і н к о в и м с т и р а н н я м , що з б л и ж у є їх за м о ж л и в о с т я м и з E E P R O M . Як і у
в и п а д к у з E E P R O M , м і к р о с х е м и ф л е ш - п а м ' я т і в и п у с к а ю т ь с я у варіантах з послідовним
і паралельним доступом.
За організацією масиву з а п а м ' я т о в у ю ч и х елементів р о з р і з н я ю т ь ф л е ш - п а м ' я т ь з то­
т а л ь н и м о ч и щ е н н я м , коли с т и р а н н я д о п у с т и м о тільки для всього масиву запам'ятову­
ючих елементів, та з б л о к о в и м о ч и щ е н н я м , коли м а с и в з а п а м ' я т о в у ю ч и х елементів роз­
д і л ь н и й на декілька блоків різного а б о о д н а к о в о г о розміру, вміст я к и х може очищатися
незалежно.
Вміст ф л е ш - п а м ' я т і м о ж е бути о ч и щ е н и й за декілька секунд, з а п и с одного слова зай­
м а є декілька м і к р о с е к у н д , а час д о с т у п у до даних п р и з ч и т у в а н н і - декілька десятків
наносекунд.
339

9.7. Зовнішня пам'ять

9.7.1. Магнітні диски


Магнітні диски - це набір м е т а л е в и х а б о п л а с т м а с о в и х п л а с т и н , п о к р и т и х м а г н і т н и м
матеріалом, на я к о м у зберігається і н ф о р м а ц і я . З а п и с та з ч и т у в а н н я і н ф о р м а ц і ї п р о в о ­
диться за допомогою головки з а п и с у - з ч и т у в а н н я , я к а є е л е к т р о м а г н і т н о ю к о т у ш к о ю ,
причому в процесі з а п и с у - з ч и т у в а н н я диск о б е р т а є т ь с я в і д н о с н о нерухомої головки.
П р и записі на головку п о д а ю т ь с я електричні імпульси, що н а м а г н і ч у ю т ь д і л я н к у п о ­
верхні магнітного матеріалу під нею, п р и ч о м у х а р а к т е р намагніченості поверхні р і з н и й
залежно від н а п р я м у с т р у м у в к о т у ш ц і . З ч и т у в а н н я б а з у є т ь с я на е л е к т р и ч н о м у струмі,
що наводиться в к о т у ш ц і головки, коли під нею п р о х о д и т ь д і л я н к а магнітного матеріалу
поверхні диска, п р и ч о м у в к о т у ш ц і н а в о д и т ь с я с т р у м тієї ж п о л я р н о с т і , що в и к о р и с т о ­
вувався для з а п и с у інформації. Не д и в л я ч и с ь на р і з н о м а н і т н і с т ь типів магнітних дисків,
п р и н ц и п и їх організації з а з в и ч а й о д н о т и п н і .
Дані на диску о р г а н і з о в а н і у вигляді н а б о р у к о н ц е н т р и ч н и х кіл, н а з в а н и х д о р і ж к а м и
(рис. 9.26). Кожна з н и х м а є ту ж ш и р и н у , що і головка. Сусідні д о р і ж к и розділені п р о ­
міжками. Це запобігає п о м и л к а м із-за зсуву головки а б о із-за і н т е р ф е р е н ц і ї м а г н і т н и х
полів. Як п р а в и л о , для с п р о щ е н н я е л е к т р о н і к и п р и й м а є т ь с я , що на всіх д о р і ж к а х м о ж е
зберігатися однакова кількість інформації. Таким ч и н о м , щ і л ь н і с т ь з а п и с у з б і л ь ш у є т ь с я
від зовнішніх доріжок до в н у т р і ш н і х .

Доріжки Сектори записами

Рис. 9.32. Розміщення інформації на магнітному диску

Обмін і н ф о р м а ц і є ю між ОП і м а г н і т н и м д и с к о м з д і й с н ю є т ь с я блоками. Розмір блоку


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

Т и п о в е ч и с л о секторів на доріжці к о л и в а є т ь с я від 10 до 100. П р и т а к і й організації


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

Сягпзр Сектор 0 Сестер 1 С * г г а о 29


-Л_

І
баятое 17 7 \41 515 20 41 / 515 \20 17 7 41 515 20
/ у и.—воо М а М а а » .
1

і 1

Рис. 9.33. Приклад розмітки магнітного диску типу "Вінчестер"

Тут к о ж н а д о р і ж к а в к л ю ч а є 30 секторів по 600 б а й т в кожному. С е к т о р зберігає 512


байт д а н и х і к е р у ю ч у і н ф о р м а ц і ю , п о т р і б н у д л я к о н т р о л е р а диска. Поле заголовка міс­
т и т ь і н ф о р м а ц і ю , що с л у ж и т ь д л я ідентифікації сектора. Байт синхронізації є характер­
н и м кодом, що д о з в о л я є в и з н а ч и т и п о ч а т о к п о л я . Н о м е р д о р і ж к и в и з н а ч а є доріжку на
поверхні. Я к щ о в н а к о п и ч у в а ч і в и к о р и с т о в у є т ь с я декілька дисків, то н о м е р головки ви­
значає п о т р і б н у п о в е р х н ю . Поле з а г о л о в к а і поле д а н и х містять т а к о ж код циклічного
к о н т р о л ю , щ о д о з в о л я є в и я в и т и п о м и л к и . З а з в и ч а й цей код ф о р м у є т ь с я послідовним
д о д а в а н н я м за модулем 2 всіх байтів, що з б е р і г а ю т ь с я в полі.
В д а н и й час у к о м п ' ю т е р а х в и к о р и с т о в у є т ь с я ш и р о к и й спектр дискових систем: з
ф і к с о в а н о ю та р у х о м о ю головкою з ч и т у в а н н я , я к а м о ж е к о н т а к т у в а т и з магнітним ма­
теріалом, або бути від н ь о г о на деякій відстані, із з н і м н и м и та ф і к с о в а н и м и дисками, з
о д н и м та багатьма д и с к а м и , п р и ч о м у м а г н і т н и й матеріал м о ж е бути нанесеним як на
одну с т о р о н у диска, так і на обидві.
У дисковій системі з ф і к с о в а н и м и г о л о в к а м и на к о ж н у д о р і ж к у п р и х о д и т ь с я по од­
ній головці з а п и с у - з ч и т у в а н н я . Головки з м о н т о в а н і на ж о р с т к о м у важелі, що перетинає
всі д о р і ж к и диска. У дисковій системі з р у х о м и м и головками є тільки одна головка, також
встановлена на важелі, п р о т е в а ж і л ь з д а т н и й переміщатися в радіальному напрямі над
поверхнею диска, з а б е з п е ч у ю ч и м о ж л и в і с т ь п о з и ц і ю в а н н я головки на будь-яку доріжку.
Д и с к и з м а г н і т н и м носієм в с т а н о в л ю ю т ь с я в дискову систему, що складається з важе­
л я , ш п и н д е л я , що о б е р т а є диск, і е л е к т р о н н и х схем, п о т р і б н и х для введення і виведення
д в і й к о в и х даних. Н е з н і м н и й диск з а ф і к с о в а н и й в дисковій системі. З н і м н и й диск може
б у т и в и й н я т и й і з а м і н е н и й на і н ш и й а н а л о г і ч н и й диск. Перевага системи із знімними
341

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


дискових п р и с т р о ї в . Крім того, т а к и й диск м о ж е бути п е р е н е с е н и й з одного к о м п ' ю т е р а
на інший.
Більшість дисків м а ю т ь магнітне п о к р и т т я з о б о х сторін.

Гвлппкм

Рис. 9.34. Дискова пам'ять з дисковим пакетом

На осі м о ж е р о з т а ш о в у в а т и с я о д и н , а б о декілька (рис. 9.34) дисків. У о с т а н н ь о м у в и ­


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

9.7.2. Масиви магнітних дисків з надлишковістю


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

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


с я г н у т о л и ш через 10 р о к і в (рис. 9.8), р о з р о б н и к и в и м у ш е н і ш у к а т и структурні методи
п о к р а щ е н н я їх х а р а к т е р и с т и к . О д и н із т а к и х методів, а саме н а д л и ш к о в і масиви дешевих
дисків ( R A I D - Redundant Arrays of Inexpensive Disks) був з а п р о п о н о в а н и й у 1987 році
Д. П а т т е р с о н о м , R Гартом Р. К а т ц о м . В о с н о в у R A I D п о к л а д е н а н а с т у п н а ідея: об'єдную­
чи в м а с и в декілька н е в е л и к и х і/або д е ш е в и х дисків, які з б о к у к о м п ' ю т е р а сприймають­
ся як один диск, м о ж н а о т р и м а т и систему, що п е р е в е р ш у є за о б ' є м о м , продуктивністю
р о б о т и і надійністю дорогі диски в е л и к о г о об'єму.
Асоціацією в и р о б н и к і в R A I D - с и с т е м було в и з н а ч е н о шість б а з о в и х типів дискових
масивів R A I D : R A I D 0, R A I D 1,..., R A I D 5. Також є кілька типів R A I D , які не включені в
д а н и й перелік, оскільки в о н и п р е д с т а в л я ю т ь с о б о ю різні комбінації б а з о в и х рівнів. Хоча
ні один тип не м о ж е бути в и з н а н и й к р а щ и м д л я всіх в и п а д к і в з а с т о с у в а н н я , кожен з них
дозволяє відчутно покращити якусь характеристику.
П і д в и щ е н а п р о д у к т и в н і с т ь дискової підсистеми в R A I D досягається за допомогою
р о з б и т т я д а н и х і д и с к о в о г о п р о с т о р у на смуги, які р о з п о д і л я ю т ь с я по різних дисках, від­
п о в і д н о до в и з н а ч е н о ї системи. Це д о з в о л я є п р о в о д и т и п а р а л е л ь н е з ч и т у в а н н я або за­
п и с відразу кількох смуг, я к щ о в о н и р о з м і щ е н і на різних дисках. В ідеальному випадку,
п р о д у к т и в н і с т ь дискової підсистеми м о ж е бути збільшена в ту кількість разів, яка рівна
кількості дисків в масиві. Розмір ( ш и р и н а ) смуги в и б и р а є т ь с я в и х о д я ч и з особливостей
к о ж н о г о р і в н я R A I D , і м о ж е бути рівна біту, байту, р о з м і р у ф і з и ч н о г о сектора диска, або
ж р о з м і р у д о р і ж к и . Частіше всього послідовні смуги р о з д і л я ю т ь с я по послідовних дис­
ках масиву. Так, в масиві із п дисків п п е р ш и х смуг ф і з и ч н о р о з м і щ е н і як перші смуги на
к о ж н о м у з дисків, н а с т у п н і п смуг - як другі смуги на к о ж н о м у диску і т. д. Набір послі­
д о в н и х смуг, о д н а к о в о р о з м і щ е н и х на к о ж н о м у диску масиву, н а з и в а ю т ь поясом.
І н ш а ціль к о н ц е п ц і ї R A I D - це п і д в и щ е н н я їх відмовостійкості за рахунок виявлення
і корекції п о м и л о к , які в и н и к а ю т ь п р и відмові дисків, або в результаті збоїв. Досягається
це за р а х у н о к н а д л и ш к о в о г о д и с к о в о г о простору, я к и й з а д і я н и й д л я зберігання додат­
кової і н ф о р м а ц і ї , що д о з в о л я є в і д н о в и т и с п о т в о р е н і або втрачені дані. В R A I D перед­
баченні т р и в и д и додаткової інформації: д у б л ю в а н н я , код Хемінга та в и к о р и с т а н н я бітів
контролю парності.
Д у б л ю в а н н я п о л я г а є в записі т и х же д а н и х на інші диски масиву, що дозволяє при
відмові о д н о г о з дисків с к о р и с т а т и с я відповідною і н ф о р м а ц і є ю , з б е р е ж е н о ю на справ­
н и х дисках. У п р и н ц и п і р о з д і л е н н я і н ф о р м а ц і ї по дисках масиву м о ж е бути довільним,
але для с к о р о ч е н н я затрат, з в ' я з а н и х із п о ш у к о м копії, з а с т о с о в у є т ь с я р о з б и т т я масиву
на п а р и дисків, де в к о ж н і й парі дисків і н ф о р м а ц і я є і д е н т и ч н о ю та р о з м і щ е н а однаково.
П р и т а к о м у д у б л ю в а н н і н а д м і р н і с т ь д и с к о в о г о м а с и в у с т а н о в и т ь 100%.
Код Хемінга обчислюється для к о ж н о ї групи смуг, однаково р о з м і щ е н и х на всіх дисках
масиву, т о б т о поясу. Коригуючі біти зберігаються на спеціально виділених для цієї цілі до­
даткових дисках. Так, для масиву з десяти дисків потрібно ч о т и р и додаткових диски.
В и к о р и с т а н н я бітів к о н т р о л ю п а р н о с т і замість коду Хемінга передбачає обчислення
к о н т р о л ь н о ї смуги бітів п а р н о с т і д л я к о ж н о г о н а б о р у смуг, р о з м і щ е н и х в ідентичній по­
зиції на всіх д и с к а х масиву. В ній з н а ч е н н я о к р е м о г о біта ф о р м у є т ь с я як сума за моду­
лем два д л я о д н о й м е н н и х бітів в усіх к о н т р о л ь о в а н и х смугах. Для зберігання смуг бітів
к о н т р о л ю парності п о т р і б н о тільки один д о д а т к о в и й диск. У в и п а д к у відмови якогось із
343

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


ються по бітах бітів парності та д а н и х від і н ш и х дисків масиву.
Розглянемо шість б а з о в и х типів д и с к о в и х масивів R A I D : R A I D 0, R A I D 1,..., R A I D 5
та їх комбінації д е т а л ь н і ш е .

9.7.2. J. Базовий тип дискових масивів RAID 0

Даний тип R A I D п о б у д о в а н о за п р и н ц и п о м р о з ш а р у в а н н я п а м ' я т і й о р і є н т о в а н о на


підвищення п р о д у к т и в н о с т і без в и к о р и с т а н н я н а д л и ш к о в о с т і (рис. 9.35).
Оскільки R A I D 0 не володіє н а д л и ш к о в і с т ю , аварія о д н о г о диска п р и в о д и т ь до аварії
всього масиву. З і н ш о г о боку R A I D 0 з а б е з п е ч у є м а к с и м а л ь н у п р о д у к т и в н і с т ь й е ф е к ­
тивність в и к о р и с т а н н я о б ' є м у дисків.

стЦ сгЦ

Рис. 9.35. Структура RAID 0

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


перервної передачі даних, я к у не м о ж е з а б е з п е ч и т и о д и н диск. Н а п р и к л а д , д о с л і д ж е н н я ,
проведені фірмою Mylex, з м е т о ю в и з н а ч и т и о п т и м а л ь н у к о н ф і г у р а ц і ю дискової системи
для станції нелінійного відео м о н т а ж у п о к а з у ю т ь , щ о , в п о р і в н я н н і з о д н и м диском, ма­
сив R A I D 0 з двох дисків дає п р и р і с т ш в и д к о с т і з а п и с у - з ч и т у в а н н я на 96%, з трьох дис­
ків - на 143% (за д а н и м и т е с т у M i r o V I D E O E X P E R T Benchmark). М і н і м а л ь н а кількість
дисків в масиві R A I D 0 - 2шт.

9.7.2.2. Базовий тип дискових масивів RAID 1

В д а н о м у типі R A I D н а д л и ш к о в і с т ь досягається д у б л ю в а н н я м даних. Тут к о ж н а пара


дисків містить однакову і н ф о р м а ц і ю і с п р и й м а є т ь с я як о д и н л о г і ч н и й диск (рис. 9.36).

T T T T
Рис. 9.36. Структура RAID 1
344

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


диски, що в х о д я т ь у пару, м о ж у т ь здійснювати одночасні операції з ч и т у в а н н я різних
даних. Таким ч и н о м , д у б л ю в а н н я м о ж е п о д в о ю в а т и ш в и д к і с т ь з ч и т у в а н н я , але швид­
кість з а п и с у з а л и ш а є т ь с я н е з м і н н о ю в п о р і в н я н н і з о д н и м диском. R A I D 1 володіє 100%
н а д л и ш к о в і с т ю і а в а р і я одного диска не п р и в о д и т ь до аварії всього масиву - контролер
дисків п е р е м и к а є операції з ч и т у в а н н я / з а п и с у на п р а ц е з д а т н и й диск.
R A I D 1 з а б е з п е ч у є н а й в и щ у п р о д у к т и в н і с т ь серед всіх т и п і в н а д л и ш к о в и х дискових
м а с и в і в ( R A I D 1 - R A I D 5), але х а р а к т е р и з у є т ь с я н а й г і р ш и м в и к о р и с т а н н я м дискового
простору. М і н і м а л ь н а кількість дисків в масиві R A I D 1 - 2шт.

9.7.2.3. Базовий тип дискових масивів RAID 2

У системах R A I D 2 в и к о р и с т о в у є т ь с я п а р а л е л ь н и й д о с т у п до д а н и х на різних дисках,


де у в и к о н а н н і к о ж н о г о з а п и т у на в в е д е н н я / в и в е д е н н я о д н о ч а с н о б е р у т ь участь всі дис­
ки. Ш п и н д е л і всіх дисків с и н х р о н і з о в а н і так, що г о л о в к и к о ж н о г о диску в к о ж е н момент
часу з н а х о д я т ь с я в о д н а к о в и х п о з и ц і я х . Дані р о з б и в а ю т ь на смуги з а в д о в ж к и в 1 біт і
р о з п о д і л я ю т ь п о дисках м а с и в у т а к и м ч и н о м , щ о п о в н е м а ш и н н е слово представляється
п о я с о м , т о б т о ч и с л о дисків рівне д о в ж и н і м а ш и н н о г о слова в бітах. Для к о ж н о г о слова
о б ч и с л ю є т ь с я к о р и г у ю ч и й код ( з а з в и ч а й , це код Хемінга, з д а т н и й коригувати одиночні
1 в и я в л я т и подвійні п о м и л к и ) , я к и й , т а к о ж п о б і т о в о , зберігається на додаткових дисках
(мал. 5.41). Н а п р и к л а д , для масиву, о р і є н т о в а н о г о на з б е р і г а н н я 3 2 - р о з р я д н и х слів (32
о с н о в н и х д и с к и ) п о т р і б н о сім д о д а т к о в и х дисків, т а к як к о р и г у ю ч и й код складається з
7 розрядів.
П р и записі о б ч и с л ю є т ь с я к о р и г у ю ч и й код, я к и й з а н о с и т ь с я на відведені для ньо­
го д и с к и . П р и к о ж н о м у ч и т а н н і п р о в о д и т ь с я д о с т у п до всіх дисків масиву, включаючи
додаткові. З ч и т а н і дані р а з о м із к о р и г у ю ч и м кодом п о д а ю т ь с я на к о н т р о л е р дискового
масиву, де в і д б у в а є т ь с я п о в т о р н е о б ч и с л е н н я к о р и г у ю ч о г о коду і його п о р і в н я н н я з тим
кодом, щ о зберігався н а н а д м і р н и х дисках. Я к щ о п р и с у т н я о д и н о ч н а п о м и л к а , контро­
лер з д а т н и й ш в и д к о її р о з п і з н а т и і в и п р а в и т и , так що час з ч и т у в а н н я не збільшується.
R A I D 2 д о з в о л я є досягти високої ш в и д к о с т і в в е д е н н я - в и в е д е н н я п р и р о б о т і з вели­
к и м и п о с л і д о в н и м и з а п и с а м и , але стає н е е ф е к т и в н и м при о б с л у г о в у в а н н і записів неве­
ликої д о в ж и н и . О с н о в н а перевага R A I D 2 п о л я г а є у в и с о к о м у ступені з а х и с т у інформа­
ції, п р о т е в и к о р и с т а н и й в цій схемі м е т о д к о р е к ц і ї в ж е існує в диску, оскільки більшість
дисків зберігають коди корекції п о м и л о к д л я к о ж н о г о сектора.
Тому, о с к і л ь к и в и к о р и с т а н н я декількох н а д л и ш к о в и х дисків є н е е ф е к т и в н и м , R A I D
2 не дає о с о б л и в и х переваг у п о р і в н я н н і з далі р о з г л я н у т и м R A I D 3 і п р а к т и ч н о не за­
стосовується.

9.7.2.4. Базовий тип дискових масивів RAID З

Я к і у в и п а д к у з R A I D 2, дані р о з б и в а ю т ь н а смуги з а в д о в ж к и в 1 біт і розподіляють


п о дисках м а с и в у т а к и м ч и н о м , щ о п о в н е м а ш и н н е слово п р е д с т а в л я є т ь с я поясом, тобто
ч и с л о дисків рівне д о в ж и н і м а ш и н н о г о слова в бітах, а один з дисків масиву відводиться
д л я з б е р і г а н н я і н ф о р м а ц і ї п р о парність (рис. 9.37). Тобто р і з н и ц я м і ж R A I D 3 і R A I D 2
- п о т р і б е н л и ш е о д и н д о д а т к о в и й диск д л я з б е р і г а н н я біту парності, а не декілька дисків
для з б е р і г а н н я коду Хемінга.
345

Запис даних

^-r-J ^~г^ ^~г^ ^-т^


^^^ИШЩШИАВЯВШВ^ИИВШЛЬШИІИИИІВМ^В^В^В^І Схема контролю і ^ ^ ^ ^ ^ J
виг>равлення п о м и л о к ^ г ^ ^ ^ ^ ^

Читання даних

Рис.9.37. Структура RAID З

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


м о ж л и в е ш л я х о м в и к о н а н н я операції в и к л ю ч н о г о А Б О ( X O R ) з а і н ф о р м а ц і є ю н а п р а ­
цездатних дисках. К о ж е н з а п и с , з а з в и ч а й , р о з п о д і л е н и й по всіх дисках, і т о м у цей т и п
масиву дисків є е ф е к т и в н и м д л я р о б о т и в додатках з і н т е н с и в н и м о б м і н о м із д и с к о в о ю
підсистемою. О с к і л ь к и к о ж н а о п е р а ц і я в в е д е н н я - в и в е д е н н я з в е р т а є т ь с я до всіх дисків
масиву, R A I D 3 не м о ж е о д н о ч а с н о в и к о н у в а т и декілька о п е р а ц і й . Тому R A I D 3 х о р о ш и й
для о д н о з а д а ч н о г о о т о ч е н н я з д о в г и м и з а п и с а м и . Д л я р о б о т и з к о р о т к и м и з а п и с а м и п о ­
трібна с и н х р о н і з а ц і я о б е р т а н н я дисків, оскільки і н а к ш е з м е н ш у є т ь с я ш в и д к і с т ь обміну.
Застосовується рідко, оскільки п р о г р а є R A I D 5 по в и к о р и с т а н н ю д и с к о в о г о простору.
М і н і м а л ь н а кількість дисків в масиві R A I D 3 - Зшт.

9.7.2.5. Базовий тип дискових масивів RAID 4

R A I D 4 і д е н т и ч н и й R A I D 3 за в и н я т к о м того, що т у т р о з м і р поясів є набагато біль­


ш и м одного сектора. В ц ь о м у в и п а д к у з ч и т у в а н н я м о ж н а з д і й с н ю в а т и з одного диска (не
рахуючи диска, щ о зберігає і н ф о р м а ц і ю п р о п а р н і с т ь ) , т о м у м о ж л и в е одночасне в и к о ­
н а н н я декількох о п е р а ц і й з ч и т у в а н н я (рис. 9.38). П р о т е , о с к і л ь к и к о ж н а операція з а п и с у
п о в и н н а в і д н о в и т и вміст д и с к а п а р н о с т і , о д н о ч а с н е в и к о н а н н я декількох операцій запи­
су н е м о ж л и в е . Ц е й тип м а с и в у не м а є п о м і т н и х п е р е в а г перед м а с и в о м т и п у R A I D 5.
Запис даних

Читання д а н и х ^

Рис. 9.38. Структура RAID 4


345

і Запис даних

Читання даних

Рис.9.37. Структура RAID З

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


м о ж л и в е ш л я х о м в и к о н а н н я операції в и к л ю ч н о г о А Б О ( X O R ) з а і н ф о р м а ц і є ю н а п р а ­
цездатних дисках. К о ж е н з а п и с , з а з в и ч а й , р о з п о д і л е н и й по всіх дисках, і т о м у цей т и п
масиву дисків є е ф е к т и в н и м д л я р о б о т и в додатках з і н т е н с и в н и м о б м і н о м із д и с к о в о ю
підсистемою. О с к і л ь к и к о ж н а о п е р а ц і я в в е д е н н я - в и в е д е н н я з в е р т а є т ь с я до всіх дисків
масиву, R A I D 3 не м о ж е о д н о ч а с н о в и к о н у в а т и декілька о п е р а ц і й . Тому R A I D 3 х о р о ш и й
для о д н о з а д а ч н о г о о т о ч е н н я з д о в г и м и з а п и с а м и . Д л я р о б о т и з к о р о т к и м и з а п и с а м и п о ­
трібна с и н х р о н і з а ц і я о б е р т а н н я дисків, о с к і л ь к и і н а к ш е з м е н ш у є т ь с я ш в и д к і с т ь обміну.
Застосовується рідко, о с к і л ь к и п р о г р а є R A I D 5 по в и к о р и с т а н н ю д и с к о в о г о простору.
М і н і м а л ь н а кількість дисків в масиві R A I D 3 - Зшт.

9.7.2.5. Базовий тип дискових масивів RAID 4

R A I D 4 і д е н т и ч н и й R A I D 3 за в и н я т к о м того, що т у т р о з м і р поясів є набагато біль­


ш и м одного сектора. В ц ь о м у в и п а д к у з ч и т у в а н н я м о ж н а з д і й с н ю в а т и з одного диска (не
рахуючи диска, щ о зберігає і н ф о р м а ц і ю п р о парність), т о м у м о ж л и в е одночасне в и к о ­
н а н н я декількох о п е р а ц і й з ч и т у в а н н я (рис. 9.38). П р о т е , о с к і л ь к и к о ж н а о п е р а ц і я з а п и с у
п о в и н н а в і д н о в и т и вміст диска п а р н о с т і , о д н о ч а с н е в и к о н а н н я декількох о п е р а ц і й з а п и ­
су н е м о ж л и в е . Ц е й т и п м а с и в у не м а є п о м і т н и х п е р е в а г перед м а с и в о м т и п у R A I D 5.
Запис даних

Читання даних

Рис. 9.38. Структура RAID 4


346

9.7.2.6. Базовий тип дискових масивів RAID 5

Цей т и п м а с и в у дисків п о д і б н и й до т и п у R A I D 4, однак т у т немає окремого диску


д л я з б е р і г а н н я бітів парності. Тому т у т н е м а є недоліку, в л а с т и в о г о R A I D 4, я к и й заклю-
ч а є т ь с я у н е м о ж л и в о с т і одночасного в и к о н а н н я декількох операцій запису. У цьому ма­
сиві, як і в R A I D 4, в и к о р и с т о в у ю т ь с я п о я с и в е л и к о г о р о з м і р у , але, на в і д м і н у від
R A I D 4, і н ф о р м а ц і я п р о парність зберігається не на о д н о м у диску, а на всіх дисках по
ч е р з і (рис. 9.39).
Затис даних

і і 1 1
Формувач лінії паритету
1

1 І І
Читання даних
І І
Рис. 9.39. Структура RAID 5

О п е р а ц і ї з а п и с у з в е р т а ю т ь с я до одного диска з д а н и м и і до іншого диска з інфор­


м а ц і є ю п р о парність. О с к і л ь к и біти п а р н о с т і д л я р і з н и х поясів зберігаються на різних
дисках, в и к о н а н н я декількох о д н о ч а с н и х о п е р а ц і й з а п и с у є н е м о ж л и в и м , тільки в тих
о к р е м и х випадках, коли а б о п о я с и з д а н и м и , а б о п о я с и з бітами парності знаходяться на
т о м у ж диску. Ч и м більше дисків у масиві, т и м р і д ш е співпадає м і с ц е п о л о ж е н н я поясу і
біта парності.
О б л а с т ь з а с т о с у в а н н я ц ь о г о т и п у д и с к о в и х масивів - надійне зберігання масивів да­
н и х великого об'єму. М і н і м а л ь н а кількість дисків в масиві R A I D 5 - Зшт.

9.7.2.7. Тип дискових масивів RAID 6

Як і в R A I D 5 в R A I D 6 дані р о з б и в а ю т ь с я на смуги р о з м і р о м в один блок і розподі­


л я ю т ь с я по всіх дисках. Д о с т у п до смуг н е з а л е ж н и й та а с и н х р о н н и й . Р і з н и ц я в тому, що
на к о ж н о м у д и с к у зберігається не одна, а дві смуги п а р и т е т у (рис. 9.40). П е р ш а з них, як
і в R A I D 5, м і с т и т ь к о н т р о л ь н у і н ф о р м а ц і ю д л я смуг, р о з м і щ е н и х на горизонтальному
зрізі м а с и в у (за в и к л ю ч е н н я м диска, де смуга п а р и т е т у зберігається). В додаток форму­
ється і з а п и с у є т ь с я друга смуга паритету, к о н т р о л ю ю ч а всі смуги якогось одного диску
масиву, ( в е р т и к а л ь н и й зріз масиву), але не того, де зберігається смуга паритету. Така
схема м а с и в у д о з в о л я є в і д н о в и т и і н ф о р м а ц і ю п р и відмові відразу двох дисків. З іншої
с т о р о н и , з б і л ь ш у є т ь с я час на о б ч и с л е н н я і з а п и с р о з р я д і в парності та вимагається до­
д а т к о в и й д и с к о в и й п р о с т і р . Крім того, р е а л і з а ц і я даної схеми п о в ' я з а н а з ускладненням
к о н т р о л е р а д и с к о в о г о масиву. Тому, д а н и й тип R A I D зустрічається рідко.
347

1 1 1 1 Формувач лінії паритету

Ж"
31 Р(а)
а2 Р(2)_
Р(с)
P(d)

ЇТТ1
~т~
Схема контролю і виправлення помилок

~1 Г Читання даних

Рис. 9.40. Структура RAID 6

9.7.2.8. Тип дискових масивів RAID 7

R A I D 7 не входить до складу о с н о в н и х т и п і в д и с к о в и х масивів. До складу масиву


дисків R A I D 7, крім самого масиву а с и н х р о н н о п р а ц ю ю ч и х дисків, в х о д я т ь к е ш п а м ' я т ь
та контролер, які керуються в б у д о в а н о ю в к о н т р о л е р о п е р а ц і й н о ю системою р е а л ь н о г о
часу (рис. 9.41). Дані р о з б и т і на смуги р о з м і р о м у блок і розділені по дисках масиву.
Смуги бітів парності зберігаються на с п е ц і а л ь н о в и д і л е н и х для даної цілі о д н о м у або
кількох дисках.
Даний тип R A I D при р о б о т і з в е л и к и м и ф а й л а м и не п о с т у п а є т ь с я за п р о д у к т и в н і с т ю
R A I D 3. Разом з т и м , R A I D 7 м о ж е так само е ф е к т и в н о , як і R A I D 5, п р о в о д и т и кілька од­
ночасних операцій з ч и т у в а н н я і з а п и с у для н е в е л и к и х о б ' є м і в даних, що з а б е з п е ч у є т ь с я
в и к о р и с т а н н я м кеш п а м ' я т і і н а з в а н о ї о п е р а ц і й н о ї системи.
г
Запис і читання даних

ґ
Keu-п-

Х7т? і


1

г
Операційна система
реального часу

Рис. 9.41. Структура RAID 7

9.7.2.9. Тип дискових масивів RAID 10

R A I D 10 т а к о ж не входить до складу о с н о в н и х т и п і в д и с к о в и х м а с и в і в дана схема


співпадає з R A I D 0, але, на відміну від неї, р о л ь о к р е м и х дисків в и к о н у ю т ь дискові м а с и ­
ви, побудовані за схемою R A I D 1.
348

Таким ч и н о м , в R A I D 10 п о є д н у є т ь с я р о з ш а р у в а н н я п а м ' я т і й д у б л ю в а н н я даних


(рис. 9.42). Це д о з в о л я є досягти високої п р о д у к т и в н о с т і , характерної для R A I D 0, при
рівні відмовостійкості, х а р а к т е р н о ї д л я R A I D 1. О с н о в н и м недоліком цього т и п у RAID
є висока вартість реалізації. Крім того, необхідність синхронізації всіх дисків приводить
до ускладнення контролера.
Запис даних

тт Читання даних
тт
Рис. 9.42. Структура RAID 10

Таку к о н ф і г у р а ц і ю д и с к о в и х м а с и в і в н а з и в а ю т ь д в о р і в н е в и м R A I D або R A I D 10
( R A I D 0+1). О б л а с т ь її з а с т о с у в а н н я : дешеві м а с и в и , в я к и х головне - надійність збері­
г а н н я даних.
Як в ж е було с к а з а н о в и щ е , м о ж л и в і й інші комбінації б а з о в и х типів дискових маси­
вів. Н а п р и к л а д , п р и п о є д н а н н і технологій R A I D 0 та R A I D 3 , коли в додаток до принци­
пів організації R A I D 0 р о л ь о к р е м и х дисків в и к о н у ю т ь дискові масиви, організовані за
схемою R A I D 3, о т р и м у є т ь с я схема R A I D 53. Ч а с т о застосовують розділення загального
дискового п р о с т о р у на ч а с т и н и , п р и ч о м у о б ' є м к о ж н о ї з них визначається користувачем.
Одна частина ф у н к ц і о н у є як R A I D одного типу, інша - як R A I D іншого типу. Це дозволяє
досягти в и щ о ї п р о д у к т и в н о с т і та м о ж л и в о с т і р е з е р в н о г о копіювання на випадок збою.
П о т р і б н о в і д з н а ч и т и , щ о к е р у в а н н я м а с и в а м и R A I D м о ж е бути реалізоване про­
г р а м н о , як, н а п р и к л а д , у Windows N T , а п а р а т н о або п р о г р а м н о - а п а р а т н о . П р и апаратній
реалізації д о с я г а є т ь с я в и щ а п р о д у к т и в н і с т ь , п р и ч о м у система R A I D м о ж е бути викона­
на як а в т о н о м н и й п р и с т р і й , в я к о м у п о є д н у ю т ь с я м а с и в дисків і к о н т р о л е р . Контролер
м і с т и т ь м і к р о п р о ц е с о р і п р а ц ю є під к е р у в а н н я м особистої операційної системи, реалі­
з о в у ю ч и р і з н о м а н і т н і р е ж и м и р о б о т и R A I D , з а б е з п е ч у ю ч и м о ж л и в і с т ь з а м і н и несправ­
н и х дисків без в т р а т и і н ф о р м а ц і ї т а без з у п и н к и р о б о т и .

9.7.3. Оптична пам'ять


У 1983 році була п р е д с т а в л е н а п е р ш а ц и ф р о в а аудіосистема на базі к о м п а к т дисків
( C D - compact disk). К о м п а к т - д и с к - це о д н о с т о р о н н і й диск, здатний зберігати більш
н і ж 6 0 - х в и л и н н у а у д і о і н ф о р м а ц і ю . Величезний к о м е р ц і й н и й успіх C D с п р и я в розвитку
технології д е ш е в и х о п т и ч н и х з а п а м ' я т о в у ю ч и х п р и с т р о ї в . За подальші р о к и були ство­
рені різні системи п а м ' я т і на о п т и ч н и х дисках, т р и з я к и х у п р о г р е с у ю ч о м у ступені при­
ж и в а ю т ь с я в к о м п ' ю т е р а х : C D - R O M , W A R M і о п т и ч н і диски і з с т и р а н н я м .
349

9.7.3.1. Постійна пам'ять на основі компакт дисків

Для аудіо компакт-дисків і C D - R O M в и к о р и с т о в у є т ь с я ідентична технологія. О с н о в ­


на відмінність полягає у тому, що п р о г р а в а ч і C D - R O M м і ц н і ш і і містять п р и с т р о ї д л я
і виправлення п о м и л о к , які з а б е з п е ч у ю т ь к о р е к т н і с т ь передачі д а н и х з диска у к о м п ' ю т е р .
Диск виготовляється з п л а с т м а с и , н а п р и к л а д , полікарбонату, і п о к р и т и й з а б а р в л е н и м
шаром з високою віддзеркалюючою здатністю, з а з в и ч а й алюмінієм. Ц и ф р о в а і н ф о р м а ­
ція наноситься у вигляді м і к р о с к о п і ч н и х поглиблень у в і д з е р к а л ю в а л ь н і й поверхні. За-
і пис інформації п р о в о д и т ь с я за д о п о м о г о ю с и л ь н о с ф о к у с о в а н о г о п р о м е н я л а з е р а в и с о ­
кої інтенсивності. Так с т в о р ю є т ь с я так з в а н и й м а й с т е р - д и с к , з я к о г о потім д р у к у ю т ь с я
копії. Поглиблення на копії з а х и щ а ю т ь с я від п и л у і п о ш к о д ж е н ь ш л я х о м п о к р и т т я п о ­
верхні диска п р о з о р и м л а к о м
І н ф о р м а ц і я з диска з ч и т у є т ь с я м а л о п о т у ж н и м л а з е р о м , р о з т а ш о в а н и м у п р о г р а в а ч і .
Лазер освітлює поверхню диска, що о б е р т а є т ь с я , крізь п р о з о р е п о к р и т т я . І н т е н с и в н і с т ь
{ відбитого п р о м е н я лазера м і н я є т ь с я , коли він п о т р а п л я є в п о г л и б л е н н я на диску. Ці з м і ­
ни фіксуються ф о т о д е т е к т о р о м і п е р е т в о р ю ю т ь с я на ц и ф р о в и й сигнал
Поглиблення, р о з т а ш о в а н і б л и ж ч е до ц е н т р у диска, п е р е м і щ а ю т ь с я щодо п р о м е н я
лазера повільніше, ніж більш віддалені. Через це необхідні заходи для компенсації відмін­
ностей в швидкості так, щ о б лазер міг п р о ч и т у в а т и і н ф о р м а ц і ю з постійною швидкістю
Одне з м о ж л и в и х в и р і ш е н ь аналогічне до в ж и в а н о г о в м а г н і т н и х дисках - збіль­
шення відстані між бітами інформації, з а л е ж н о від її р о з т а ш у в а н н я на диску. В ц ь о м у
випадку диск може о б е р т а т и с я з н е з м і н н о ю ш в и д к і с т ю і, відповідно, такі дискові п р и ­
строї відомі як п р и с т р о ї з п о с т і й н о ю к у т о в о ю ш в и д к і с т ю . З в а ж а ю ч и на н е р а ц і о н а л ь н е
в и к о р и с т а н н я з о в н і ш н ь о ї ч а с т и н и диска м е т о д постійної к у т о в о ї ш в и д к о с т і в C D - R O M
не підтримується. Натомість і н ф о р м а ц і я по диску р о з м і щ у є т ь с я в секторах о д н а к о в о г о
розміру, які скануються з п о с т і й н о ю ш в и д к і с т ю за р а х у н о к того, що диск о б е р т а є т ь с я
із змінною швидкістю. В результаті п о г л и б л е н н я п р о ч и т у ю т ь с я л а з е р о м із п о с т і й н о ю
лінійною швидкістю. П р и д о с т у п і до і н ф о р м а ц і ї у з о в н і ш н ь о г о к р а ю диска ш в и д к і с т ь
о б е р т а н н я є м е н ш о ю і з р о с т а є п р и н а б л и ж е н н і до осі. Є м н і с т ь д о р і ж к и і з а т р и м к и о б е р ­
тання з р о с т а ю т ь зі з с у в о м від ц е н т р у до з о в н і ш н ь о г о к р а ю диска
Випускаються C D - R O M різної ємності. У т и п о в о м у варіанті відстань м і ж д о р і ж к а м и
складає 1,6 м к м , що, з у р а х у в а н н я м п р о м і ж к і в м і ж д о р і ж к а м и , д о з в о л я є з а б е з п е ч и т и 20
344 доріжки. Ф а к т и ч н о ж, замість безлічі к о н ц е н т р и ч н и х д о р і ж о к , є одна д о р і ж к а у в и ­
гляді спіралі, д о в ж и н а якої рівна 5,27 км. П о с т і й н а лінійна ш в и д к і с т ь C D - R O M - 1,2 м / с ,
тобто для " п р о х о д ж е н н я " спіралі п о т р і б н о 4391 с е к у н д а б о 73,2 х в и л и н и . Саме ця ве­
личина складає с т а н д а р т н и й м а к с и м а л ь н и й час п р о г р а в а н н я аудіодиска. О с к і л ь к и дані
п р о ч и т у ю т ь с я з диска зі ш в и д к і с т ю 176,4 КБ/с, є м н і с т ь C D - R O M рівна 774,57 МБ
Дані н а C D - R O M о р г а н і з о в а н і я к послідовність блоків. Т и п о в и й ф о р м а т блоку п о ­
к а з а н и й на рис. 9.43.

Коррек­
00 FF X 10 00 Мин Сен Сектор Режим Денные тирующий
колосс

12 байт I 4 байт» I 2048 байт I 2686«*! і


Синхронизация J* Идентификатор " Данные * КК |

_ 2352 б а й т а — • >!

Рис. 9.43. Формат блоку CD-ROM


350

Блок в к л ю ч а є наступні п о л я :
• С и н х р о н і з а ц і ю . Це поле і д е н т и ф і к у є початок блоку і складається з нульового
байта, д е с я т и б а й т і в , що містять тільки о д и н и ч н і р о з р я д и , і з н о в у байта зі всіх нулів.
• І д е н т и ф і к а т о р . З а г о л о в о к , що м і с т и т ь адресу блоку і байт режиму. Режим 0 ви­
значає п о р о ж н є поле даних; р е ж и м 1 відповідає за в и к о р и с т а н н я коду, що коригує по­
м и л к и , і н а я в н і с т ь 2048 б а й т даних; р е ж и м 2 в и з н а ч а є наявність 2336 байт даних і від­
сутність к о р и г у ю ч о г о коду.
• Дані. Дані к о р и с т у в а ч а .
• К о р и г у ю ч и й код (КК). Поле п р и з н а ч е н е для з б е р і г а н н я додаткових даних корис­
тувача в р е ж и м і 2, а в р е ж и м і 1 м і с т и т ь 288 байт коду з в и п р а в л е н н я м помилок.
Рис. 9.44 і л ю с т р у є організацію і н ф о р м а ц і ї на C D - R O M . Як вже наголошувалося, дані
р о з т а ш о в а н і п о с л і д о в н о по с п і р а л е в и д н і й д о р і ж ц і . Для в а р і а н т у з постійною лінійною
ш в и д к і с т ю д о в і л ь н и й д о с т у п д о і н ф о р м а ц і ї стає с к л а д н і ш и м .
60' 03" 00' 00"

Рис. 9.44. Організація диска з постійною лінійною швидкістю

О с т а н н і м ч а с о м н а м і т и в с я п е р е х і д д о н о в о г о т и п у о п т и ч н и х д и с к і в D V D (Digital
Video Data). Д и с к и D V D складаються з двох шарів з а в т о в ш к и 0,6 мм, т о б т о мають дві
р о б о ч и х поверхні, і з а б е з п е ч у ю т ь з б е р і г а н н я по 4,7 Гбайт на кожній. У технології D V D
в и к о р и с т о в у є т ь с я л а з е р з м е н ш о ю д о в ж и н о ю хвилі (650 нм п р о т и 780 нм для стандарт­
н и х C D - R O M ) , а т а к о ж в и т о н ч е н і ш а схема корекції. Все це д о з в о л я є з б і л ь ш и т и число
д о р і ж о к і п і д в и щ и т и щільність запису. Крім того, при записі застосовується метод комп­
ресії інформації, в і д о м и й я к M P E G 2 .

9.7.3.2. Оптичні диски із стиранням

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


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

опромінювану п л я м у на поверхні і у цей м о м е н т магнітне поле м о ж е з м і н и т и орієнтацію


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

9.7.4. Магнітні стрічки


П а м ' я т ь на базі магнітних стрічок в и к о р и с т о в у є т ь с я в о с н о в н о м у д л я архівації ін­
формації. Носієм с л у ж и т ь тонка стрічка п о л і с т и р о л у з а в ш и р ш к и 0,38-2,54 см і з а в т о в ш ­
ки близько 0,025 мм, п о к р и т а м а г н і т н и м ш а р о м . С т р і ч к а н а м о т у є т ь с я на б о б і н и різного
діаметру. Дані з а п и с у ю т ь с я послідовно, б а й т за б а й т о м , від п о ч а т к у стрічки до її кінця.
Час д о с т у п у до і н ф о р м а ц і ї на магнітній стрічці є з н а ч н о б і л ь ш и м , ч и м у р а н і ш е р о з г л я ­
нутих видів з о в н і ш н ь о ї пам'яті.
З а з в и ч а й у з д о в ж стрічки р о з т а ш о в у є т ь с я 9 доріжок, що д о з в о л я є з а п и с у в а т и у п о п е ­
рек стрічки байт д а н и х і біт парності. І н ф о р м а ц і я на стрічці г р у п у є т ь с я в блоки - з а п и ­
си. Кожен з а п и с відділяється від сусідньої м і ж б л о к о в и м п р о м і ж к о м , що дає м о ж л и в і с т ь
п о з и ц і ю в а н н я головки з ч и т у в а н н я / з а п и с у на початок б у д ь - я к о г о блоку. Ідентифікація
запису п р о в о д и т ь с я по полю заголовка, що м і с т и т ь с я в к о ж н о м у записі. Для вказівки
початку і к і н ц я стрічки в и к о р и с т о в у ю т ь с я фізичні м а р к е р и у в и г л я д і м е т а л і з о в а н и х
смужок, що наклеюються на м а г н і т н у стрічку, або п р о з о р и х д і л я н о к на самій стрічці.
Відомі т а к о ж варіанти м а р к у в а н н я п о ч а т к у і к і н ц я стрічки ш л я х о м з а п и с у на неї спеці­
альних кодів - індикаторів.
В к о м п ' ю т е р а х з а з в и ч а й з а с т о с о в у ю т ь с я к о т у ш к о в і п р и с т р о ї з в а к у у м н и м и система­
ми стабілізації швидкості п е р е м і щ е н н я стрічки. У них ш в и д к і с т ь п е р е м і щ е н н я стрічки
складає близько 300 см/с, щільність з а п и с у - 4 К Б / с м , а ш в и д к і с т ь передачі і н ф о р м а ц і ї
- 320 КБ/с. Типова к о т у ш к а містить 730 м магнітної стрічки.
У пам'яті на базі к а р т р и д ж і в в и к о р и с т о в у ю т ь с я касети з д в о м а к о т у ш к а м и , а н а л о ­
гічні с т а н д а р т н и м аудіокасетам. Т и п о в а ш и р и н а стрічки - 8 м м . Н а й б і л ь ш п о ш и р е н о ю
форхмою т а к и х п р и с т р о ї в є D A T (Digital A u d i o Tape). Дані на с т р і ч к у з а н о с я т ь с я по діа­
гоналі, як це п р и й н я т о у відеокасетах. За р о з м і р о м т а к и й к а р т р и д ж п р и б л и з н о удвічі
м е н ш и й , ніж з в и ч а й н а к о м п а к т - д и с к - к а с е т а , і має т о в щ и н у 3,81 м м . К о ж е н к а р т р и д ж
дозволяє зберігати декілька ГБ даних. Ч а с д о с т у п у до даних н е в е л и к и й (середнє м і ж ча­
сами д о с т у п у до дискет і до ж о р с т к и х дисків). Ш в и д к і с т ь передачі і н ф о р м а ц і ї вища, ніж
у дискет, але нижча, ніж у ж о р с т к и х дисків.
Другим видом п а м ' я т і на базі к а р т р и д ж і в є п р и с т р і й с т а н д а р т у D D S (Digital Data
Storage). Цей стандарт був р о з р о б л е н и й в 1989 році для з а д о в о л е н н я в и м о г до р е з е р в ­
ного копіювання і н ф о р м а ц і ї з ж о р с т к и х дисків у могутніх серверах і р о з р а х о в а н и х на
багато користувачів системах. По суті, це варіант D A T , що з а б е з п е ч у є з б е р і г а н н я 2 ГБ
даних при д о в ж и н і стрічки 90 м. У п і з н і ш о м у варіанті с т а н д а р т у D D S - D C (Digital Data
Storage — Data Compression) за р а х у н о к з а с т о с у в а н н я методів с т и с н е н н я і н ф о р м а ц і ї є м ­
ність стрічки збільшена до 8 ГБ. Н а р е ш т і , третій тип з а п а м ' я т о в у ю ч о г о п р и с т р о ю на базі
к а р т р и д ж і в також п р и з н а ч е н и й для р е з е р в н о г о к о п і ю в а н н я вмісту ж о р с т к и х дисків, але
при м е н ш и х о б ' є м а х такої інформації. Цей т и п відповідає с т а н д а р т у Q I C (Quarter Inch
352

Cartridge tape) і в і д о м і ш и й під н а з в о ю с т р и м е р . Відомі с т р и м е р и , що забезпечують збе­


р і г а н н я від 15 до 525 МБ і н ф о р м а ц і ї . З а л е ж н о від і н ф о р м а ц і й н о ї місткості і фірми-ви-
г о т о в л ю в а ч а з м і н ю ю т ь с я і х а р а к т е р и с т и к и т а к и х к а р т р и д ж і в . Так, число доріжок може
в а р і ю в а т и с я в діапазоні від 4 до 28, д о в ж и н а стрічки - від 36 до 300 м і т.д.

9.8. Короткий зміст розділу


У д а н о м у р о з д і л і р о з г л я н у т і п и т а н н я о р г а н і з а ц і ї р о б о т и з п а м ' я т т ю комп'ютера.
В к о м п ' ю т е р і в и к о р и с т о в у ю т ь с я різні т и п и пам'яті, які, з а л е ж н о від способу доступу до
і н ф о р м а ц і ї , м о ж у т ь б у т и к л а с и ф і к о в а н і н а с т у п н и м ч и н о м : п а м ' я т ь з д о в і л ь н и м досту­
п о м , із в п о р я д к о в а н и м д о с т у п о м та з а с о ц і а т и в н и м д о с т у п о м . К о ж н и й тип пам'яті має
свої п е р е в а г и та недоліки, які в и з н а ч а ю т ь місце його в и к о р и с т а н н я в комп'ютері.
Р о з г л я н у т а с т р у к т у р а п а м ' я т і к о м п ' ю т е р а та т и п и п а м ' я т і , які входять до складу вну­
т р і ш н ь о ї та з о в н і ш н ь о ї п а м ' я т і к о м п ' ю т е р а . П р и в е д е н о о с н о в н і х а р а к т е р и с т и к и пам'яті:
є м н і с т ь пам'яті, о р г а н і з а ц і я п а м ' я т і , ш в и д к о д і я пам'яті, час д о с т у п у до пам'яті, період
з в е р н е н н я д о пам'яті, вартість. Н а з в а н о т и п и п а м ' я т і з а л е ж н о від технології виготовлен­
н я , е н е р г о з а л е ж н о с т і , з а м е т о д о м д о с т у п у д о даних.
П р о а н а л і з о в а н о м о ж л и в і в а р і а н т и організації р е г і с т р о в и х ф а й л і в процесорів. По­
к а з а н о о б м е ж е н н я , які с п р и ч и н я є в и к о р и с т а н н я б а г а т о п о р т о в о г о регістрового файла.
Р о з г л я н у т о р я д н о в и х с т р у к т у р р е г і с т р о в о г о файла: і н т е г р о в а н о г о регістрового файла,
р о з п о д і л е н о г о р е г і с т р о в о г о ф а й л а , к л а с т е р н о г о р о з п о д і л е н о г о регістрового файла, роз­
поділеного р е г і с т р о в о г о ф а й л а з к е р о в а н о ю к о м у т а ц і є ю , р о з п о д і л е н о г о регістрового
ф а й л у з в і к о н н о ю о р г а н і з а ц і є ю , і є р а р х і ч н о г о р е г і с т р о в о г о файла. Розглянута динамічна
та с т а т и ч н а о р г а н і з а ц і я д а н и х в р е г і с т р о в и х файлах. О п и с а н а р о б о т а регістрового файла
на базі черги з п р о г р а м о в а н о ю з а т р и м к о ю .
О п и с а н о галузі е ф е к т и в н о г о в и к о р и с т а н н я п а м ' я т і з а с о ц і а т и в н и м д о с т у п о м та
п р и н ц и п и ї ї р о б о т и , з о к р е м а , я к р е а л і з у є т ь с я з а п и с нової і н ф о р м а ц і ї т а я к реалізується
з ч и т у в а н н я і н ф о р м а ц і ї з п а м ' я т і з а с о ц і а т и в н и м д о с т у п о м . П о к а з а н о які види пошуку
м о ж н а здійснювати в п а м ' я т і з а с о ц і а т и в н и м д о с т у п о м . О п и с а н о ч о т и р и основні елемен­
ти організації п а м ' я т і з а с о ц і а т и в н и м д о с т у п о м : з п о в н и м п а р а л е л ь н и м асоціативним до­
с т у п о м , з н е п о в н и м п а р а л е л ь н и м а с о ц і а т и в н и м д о с т у п о м , з п о с л і д о в н и м асоціативним
доступом, з частково асоціативним доступом.
О п и с а н о в и д и з а п а м ' я т о в у ю ч и х п р и с т р о ї в , які м о ж е містити основна пам'ять. При­
ведено м о ж л и в і варіанти п о б у д о в и блокової п а м ' я т і та м о ж л и в о с т і по скороченню часу
д о с т у п у до інформації, які надає блокова о р г а н і з а ц і я пам'яті. П о я с н е н о ч и м обумовле­
н а е ф е к т и в н і с т ь р о з ш а р у в а н н я пам'яті. П о к а з а н о я к здійснюється н а р о щ у в а н н я роз-
р я д н о с т і о с н о в н о ї пам'яті. О п и с а н о топологію з а п а м ' я т о в у ю ч и х елементів, яка лежить
в основі організації н а п і в п р о в і д н и к о в и х З П . Д а н о п о я с н е н н я п р и з н а ч е н н я керуючих
сигналів в мікросхемі пам'яті. О п и с а н о як п о б у д о в а н о П З П , що з а п р о г р а м о в а н и й при
в и г о т о в л е н н і , о д н о р а з о в о з а п р о г р а м о в а н и й після в и г о т о в л е н н я та б а г а т о р а з о в о програ-
мовний ПЗП.
П р и в е д е н о п о р я д о к р о з м і щ е н н я і н ф о р м а ц і ї на м а г н і т н о м у диску. О п и с а н і типи су­
ч а с н и х д и с к о в и х систем. П о я с н е н о для чого в и к о р и с т о в у ю т ь с я м а с и в и магнітних дисків
з надлишковістю та р о б о т а шести базових типів дискових масивів R A I D : R A I D 0,
353

RAID 1,..., R A I D 5 та д и с к о в и х масивів, с т в о р е н и х на їх основі. О п и с а н а р о б о т а о п т и ч ­


ної пам'яті та п а м ' я т і на магнітних стрічках.

9 . 9 . Література для подальшого читання


С т р у к т у р а п а м ' я т і к о м п ' ю т е р а та т и п и пам'яті, які входять до складу в н у т р і ш н ь о ї
та зовнішньої п а м ' я т і к о м п ' ю т е р а п р и в е д е н і в к н и г а х [1-3,5, 7-11]. Тут же п р и в е д е н о
основні х а р а к т е р и с т и к и пам'яті: є м н і с т ь , організація, ш в и д к о д і я , час доступу, період
звернення, вартість. Класифікація різних типів пам'яті з а л е ж н о від способу д о с т у п у до
даних приведена в [5]. В р о б о т і [6] було з а п р о п о н о в а н о н о в и й тип пам'яті, я к а за спо­
собом д о с т у п у до даних відноситься до п а м ' я т і з в п о р я д к о в а н и м д о с т у п о м . П р и н ц и п и
побудови та організації р о б о т и пам'яті з д о в і л ь н и м д о с т у п о м д е т а л ь н о р о з г л я н у т і в літе­
ратурі [8-11].
В праці [26] п р о в е д е н а к л а с и ф і к а ц і я та д е т а л ь н о р о з г л я н у т і с т р у к т у р и та п р и н ц и п и
організації в и к о р и с т о в у в а н и х у к о м п ' ю т е р а х р е г і с т р о в и х ф а й л і в . У р о б о т і [22] о п и с а н о
віконну організацію регістрового ф а й л а . С т р у к т у р у ієрархічного р е г і с т р о в о г о файла за­
п р о п о н о в а н о в р о б о т і [14]. У р о б о т а х [14, 15] п р о п о н у є т ь с я д в о р і в н е в а модель регістро­
вого ф а й л а д л я д и н а м і ч н и х с у п е р с к а л я р н и х архітектур, яка д о з в о л я є з м е н ш и т и кіль­
кість регістрів та кількість портів. Така д в о р і в н е в а організація з м е н ш у є кількість портів
у три р а з и , а т а к о ж п о к р а щ у є час д о с т у п у до д а н и х на 46%. Регістровий ф а й л п р о ц е с о р а
SPARC є т а к о ж і є р а р х і ч н и й , оскільки м і с т и т ь б е з п о с е р е д н ь о регістрові вікна та асоціа­
тивний р е г і с т р о в и й кеш [16, 23]. В р о б о т і [25] п р о п о н у є т ь с я будувати р е г і с т р о в и й ф а й л
на основі черг за п р и н ц и п о м FIFO.
В р о б о т а х [25, 26] п р о п о н у є т ь с я о р г а н і з у в а т и р е г і с т р о в и й ф а й л на основі черги з
програмованою затримкою.
Асоціативна п а м ' я т ь описана в [1]. Існує ц і л и й р я д а л г о р и т м і в , що д о з в о л я ю т ь орга­
нізувати в п о р я д к о в а н у в и б і р к у д а н и х з цієї пам'яті. Д е т а л ь н и й їх о п и с і п о р і в н я л ь н и й
аналіз м о ж н а з н а й т и в [11].
У 1987 р о ц і П а т т е р с о н (Patterson), Гібсон (Gibson) і К а т ц (Katz) з к а л і ф о р н і й с ь к о г о
університету Берклі о п у б л і к у в а л и статтю [ЗО]. У цій статті о п и с у в а л и с я різні т и п и дис­
кових масивів, щ о п о з н а ч а ю т ь с я с к о р о ч е н н я м R A I D .

9. 7 0. Література до розділу 9
1. Искусственный интеллект: В 3-х книгах. Кн. 3. Программные и аппаратные средства: Спра­
вочник / Под ред. В Н. Захарова, В Ф. Хорошевского. - М.: Радио и связь, 1990. - 191 с
2. Каган Б М. Электронные вычислительные машины и системы. - М.: Энергия, 1979.- 528 с
3. Каган Б М., Каневский M M. Цифровые вычислительные машины и системы. - М.: Энер­
гия, 1974. - 680 с
4. Мельник А О. Програмовані процесори обробки сигналів. - Львів: Видавництво Націо­
нального університету "Львівська політехніка", 2000. - 55 с
5. Угрюмов Е П. Цифровая схемотехника. - СПб.: БХВ - Санкт-Петерберг, 2000. - 528 с
6. Мельник А О. Принципи побудови буферної сортувальної пам'яті. Вісник Державного уні­
верситету "Львівська політехніка" "Комп ютерна інженерія та інформаційні технології", N 307,
1996.- С. 65-71.
354

7. Б Н Малиновский и др. Справочник по цифровой вычислительной технике. - К Техніка,


1980. - 320 с
8. Шигин А Г., Дерюгин А А. Цифровые вычислительные машины (память ЦВМ). - М.: Энер­
гия, 1975. - 536 с
9. D. Patterson, J. Hennessy. Computer Architecture. A Quantitative Approach. Morgan Kaufmann
Publishers, Inc. 1996.
10. Patterson, D. A., & Hennessy, J. L. Computer Organization and Design, The Hardware/Software
Interface, 2nd ed , San Mateo, C A : Morgan Kaufmann, 1997.
11. Метлицкий Б А., Каверзнев В В. Системы параллельной памяти. Теория, проектирование,
применение. Под ред. В И. Тихонова. - Л., 1989.
12. David J. Kuck. The Structure of Computers and Computations. John Wiley & Sons, Pittsburgh,
Pennsylvania, 1978.
13. S.Y. Kung, VLSI Array Processors, Prentice Hall, 1988.
14. Marcio Merino Fernandes, Josep Llosa, Nigel Topham. Using Queues for Register File Organiz­
ation in V L I W Architectures. Technical Report ECS-CSG 29-97, Dept of Computer Science, University
of Edinburgh, 1997.
15. Henk Corporaal, Microprocessor Architectures: From V L I W to TTA, John Wiley 8c Sons, Inc.,
New York, NY, 1997.
16. Greg Blank and Steve Krueger. SuperSPARC: A fully integrated superscalar processor. In Hot
Chips III. A Symposium on High-Performance Chips, IEEE, August 1991.
17. CEVA: CEVA-X1620 Datasheet. CEVA, 2005.
18. Texas Instruments: TMS320C64x Technical Overview. 2005. - www.ti.com
19. S. Rixner, W. Dally, B. Khailany, P. Mattson, U. Kapasi. Register organization for media processing.
International Symposium on High Performance Computer Architecture (HPCA), pp. 375-386, 2000.
20. Balasubramonian, R., Dwarkadas, S., Albonesi, D. Reducing the Complexity of the Register File
in Dynamic Superscalar Processor. In Proceedings of the 34th International Symposium on Microarchi­
tecture, December 2001.
21. R. M. Russell. The CRAY-1 computer system. Communications of the ACM, 21(l):63-72, Jan.
1978.
22. R. Ravlndran, R. Senger, E. Marsman, G. Dasika, M. Guthaus, S. Mah/ke, andR. Brown. Incr­
easing the Number of Effective Registers in a Lo w-Po wer Processor Using a Windo wed Register File.
Proc. 2003
23. David L. Weaver and Tom Germond. The SPARC Architecture Manual, Version9. Sparc Interna­
tional and PTR Prentice Hall, Englewood Cliffs, NJ, 1994.
24. Мельник А О. Спеціалізовані системи реального часу: конспект лекцій. - Львів: навч ви­
дання, 1996. - 53 с.
25. Мельник А О., Сало А М. Методика проектування паралельного процесора на основі пам'яті з
детермінованою вибіркою // Вісник НУ "Львівська політехніка". - № 546,2005. - С. 96-101.
26. Мельник А О., Сало А М. Регістровий файл.// Вісник НУ "Львівська політехніка", 2007.
- С . 96-101.
27. Rolf Hakenes. A novel low-power microprocessor architecture, www.iccd-conference. org/proc-
eedings/2000/08010141.pdf
28. Gregory W. A Comparison of Circuits for On-Chip Programmable Crossbar Switches // 10th
N A S A Symposium on VLSI Design, Albuquerque, N M , March 20-21, 2002.
29. www.xilinx. com
30. Patterson, Gibson, Katz. A Case for Redundant Arrays of Inexpensive Disks (RAID).
9.11. Питання до розділу 9
1. Поясніть принципи організації пам яті з довільною вибіркою
2. Як зв язані адреса і ємність пам'яті?
3. Назвіть операції пам'яті
4. Опишіть структуру пам'яті комп'ютера
5. Які типи пам'яті входять до складу внутрішньої пам'яті комп'ютера?
6. Які типи пам'яті входять до складу зовнішньої пам'яті комп'ютера?
7. Які типи пам'яті є в процесорі?
8. Які операції визначає поняття "звернення до пам'яті"?
9. Назвіть основні характеристики пам'яті
10. Які одиниці вимірювання використовуються для вказівки ємності пам яті?
11. Що таке "організація пам'яті"?
12. Якими характеристиками описується швидкодія пам'яті?
13. Що таке час доступу до пам'яті?
14. Що таке період звернення до пам яті?
15. У чому полягає відмінність між часом доступу і періодом звернення до пам'яті?
16. Назвіть типи пам'яті залежно від технології виготовлення
17. Які одиниці використовуються для оцінки вартості пам'яті?
18. Назвіть типи енергонезалежної пам'яті
19. Назвіть типи енергозалежної пам'яті
20. Приведіть класифікацію пам'яті за методом доступу до даних
21. Що таке регістровий файл процесора?
22. Чи є регістри регістрового файла програмно доступними? Як це розуміти?
23. Наведіть типи регістрових файлів
24. Наведіть структуру інтегрованого регістрового файла
25. Як здійснюється запис даних до інтегрованого регістрового файла?
26. Як здійснюється зчитування даних з інтегрованого регістрового файла?
27. На що впливає збільшення кількості портів інтегрованого регістрового файла?
28. Що таке розподілений регістровий файл?
29. Приведіть організацію кластерного розподіленого регістрового файла
30. Яка перевага кластерного розподіленого регістрового файла в порівнянні з інтегрованим
регістровим файлом?
31. Як організовано кластерний розподілений регістровий файл процесора ТМ5320С6хх?
32. Приведіть організацію розподіленого регістрового файла з керованою комутацією
33. Як працює розподілений регістровий файл з віконною організацією?
34. Що дає застосування ієрархічного регістрового файла?
35. Поясніть різницю між динамічною та статичною організацією даних в регістрових файлах
36. Які переваги в динамічній організації збереження даних в регістрових файлах порівняно
із статичною?
37. Поясніть роботу регістрового файла на базі черги з програмованою затримкою
38. Де ефективно використовувати пам'ять з асоціативним доступом?
39. Поясніть принципи роботи пам'яті з асоціативним доступом
40. Для чого використовується регістр збігів у пам'яті з асоціативним доступом?
41. Поясніть призначення маски в пам'яті з асоціативним доступом
42. Як реалізується запис нової інформації в пам'ять з асоціативним доступом?
43. Як реалізується зчитування інформації з пам'яті з асоціативним доступом?
44. Які види пошуку можна здійснювати в асоціативному ЗП?
45. Назвіть чотири основні елементи організації пам'яті з асоціативним доступом
356

46. Чим відрізняються простий і складний пошуки інформації в пам'яті з асоціативним до­
ступом?
47. Поясніть організацію роботи пам'яті з повним паралельним асоціативним доступом
48. Поясніть організацію роботи пам'яті з неповним паралельним асоціативним доступом
49. Поясніть організацію роботи пам'яті з послідовним асоціативним доступом
50. Поясніть організацію роботи пам'яті з частково асоціативним доступом
51. Які види запам ятовуючих пристроїв може містити основна пам'ять?
52. Охарактеризуйте можливі варіанти побудови блокової пам'яті
53. Які можливості по скороченню часу доступу до інформації надає блокова організація
пам'яті?
54. Чим обумовлена ефективність розшарування пам яті?
55. Як здійснюється нарощування розрядності основної пам'яті?
56. Яка топологія запам ятовуючих елементів лежить в основі організації напівпровіднико­
вих ЗП?
57. Яку мінімальну кількість ліній повинен містити стовпець МС пам яті?
58. Поясніть призначення керуючих сигналів в мікросхемі пам'яті
59. Чим обумовлена необхідність регенерації вмісту динамічних ОЗП?
60. Охарактеризуйте основні сфери застосування статичних і динамічних ОЗП
61. Який вид ПЗП має найвищу швидкість перепрограмування?
62. Як побудовано ПЗП, що запрограмований при виготовленні?
63. Як побудовано ПЗП, який одноразово запрограмований після виготовлення?
64. Приведіть структуру матриці одноразово програмованого ПЗП
65. Як побудовано багаторазово програмований ПЗП?
66. Назвіть типи багаторазово програмованих ПЗП
67. Як розміщена інформація на магнітному диску?
68. Назвіть типи сучасних дискових систем
69. Для чого використовуються масиви магнітних дисків з надлишковістю?
70. Поясніть роботу шести базових типів дискових масивів RAID: RAID 0, RAID 1,..., RAID 5 та
дискових масивів, створених на їх основі
71. Назвіть типи оптичної пам яті
72. Як організована пам'ять на магнітних стрічках?
Р о з д і л 10

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

10.1. Ієрархічна організація пам'яті комп'ютера

10.1.1. Різниця між продуктивністю процесора та пам'яті


О д н и м із вузьких місць комп'ютерів з архітектурою Д ж о н а ф о н Н е й м а н а є р о з р и в в
продуктивності п р о ц е с о р а та пам'яті, п р и ч о м у цей р о з р и в н е у х и л ь н о збільшується. Так,
продуктивність п р о ц е с о р а з р о с т а є вдвічі п р и б л и з н о кожні 1,5 р о к и . В табл. 10.1 наведено
ріст з р о к а м и тактової частоти р о б о т и п р о ц е с о р а на прикладі п р о ц е с о р і в фірми Intel.
Таблиця 10.1
Роки 1980 1985 1990 1995 2000 2005 2005-1980

Тип процесора 8080 286 386 Pentium РІП P-IV

Тактова частота (МГц) 1 6 20 150 750 3800 3800 разів

Час одного такту (не) 1 000 166 50 6 1.6 0.26 3800 разів
358

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


табл. 10.2 наведено зміну з р о к а м и ц і н и з б е р і г а н н я одного МБ інформації, часу досту­
пу до с т а т и ч н о ї ( S R A M ) і д и н а м і ч н о ї ( D R A M ) н а п і в п р о в і д н и к о в о ї пам'яті та дискової
п а м ' я т і , а т а к о ж є м н і с т ь о с н о в н о ї та з о в н і ш н ь о ї дискової пам'яті.
Таблиця 10.2
1980 1985 1990 1995 2000 2005 Ріст
протягом
2005-
Хіфазст еристики*' 1980

Ціна (S МБ) 19200 2900 320 256 100 50 330 разів


RAM Час доступу 300 150 35 15 2 0.5 300 разів
(не)

Ціна (S МБ) 8000 880 100 3« 1 0.1 80 000


разів
DRAM Час доступу 375 200 100 70 50 зо 12 разів
(не)
Типовий об'см 0.064 0.256 4 16 64 258 4 000
ОП на базі разів
DRAM (МБ)

Ціна (S МБ) 500 100 8 0.3 0.05 0 01 5 000


разів
Час доступу 300 150 35 15 2 0.5 300 разів
DISC (не)
Типовий о б ' є м 1 10 160 1 000 9 000 80000 S0000
дискової разів
пам'яті (МБ)

Виходячи з н а в е д е н и х д а н и х в табл. 10.1 та табл. 10.2, на рис. 10.2 показана зміна з ро­
ками часу д о с т у п у д о с т а т и ч н о ї Т та динамічної Т
5 К А М н а п і в п р о в і д н и к о в о ї т а диско­
0 К А М

вої Т 0 І 5 Кпам'яті, а т а к о ж т а к т о в о ї частоти р о б о т и п р о ц е с о р а Т Як в и д н о з наведеного


с р і г

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


н а м і ч н о ї пам'яті. П р и ч о м у з р о к а м и р о з р и в у з н а ч е н н я х часових х а р а к т е р и с т и к між про­
ц е с о р о м і д и н а м і ч н о ю н а п і в п р о в і д н и к о в о ю п а м ' я т т ю та д и с к о в о ю п а м ' я т т ю зростає.

Чж (не)

Рис. 10.2. Зміна з роками часових характеристик статичної і динамічної


напівпровідникової та дискової пам'яті, а також процесора

О с о б л и в о в а ж л и в и м з т о ч к и з о р у а р х і т е к т у р и к о м п ' ю т е р а є те, що з р о с т а є розрив


м і ж т а к т о в о ю ч а с т о т о ю п р о ц е с о р а і ч а с о м д о с т у п у до д и н а м і ч н о ї напівпровідникової
п а м ' я т і D R A M , н а основі якої будується о с н о в н а п а м ' я т ь комп'ютера. Адже якраз між
ц и м и д в о м а в у з л а м и к о м п ' ю т е р а з д і й с н ю є т ь с я о с н о в н а частка обмінів інформацією.
В т о й ч а с , к о л и п р о д у к т и в н і с т ь п р о ц е с о р а з р о с т а є щ о р о к у на 60 % ( п о д в о є н н я за
359

1,5 року), ріст п р о д у к т и в н о с т і д и н а м і ч н о ї н а п і в п р о в і д н и к о в о ї п а м ' я т і не п е р е в и щ у є 9 %


в рік ( п о д в о є н н я за 10 років). Це в и р а ж а є т ь с я в з б і л ь ш е н н і р о з р и в у в п р о д у к т и в н о с т і
між п р о ц е с о р о м і д и н а м і ч н о ю н а п і в п р о в і д н и к о в о ю п а м ' я т т ю на 50 % в рік (рис. 10.3).
Ріст продуктивності
процесора 60% щорічно Розрив в
1000 продуктивності
між процесором і
основною
І 100 пам'яттю ( з р о с т а є
г» 50% щорічно)

10 Зменшення часу
доступу Оо основної
пам'яті 9% щорічно
І Л Ч > ГЧ CD 0% О

Рис. 10.3. Збільшення розриву в продуктивності між процесором і пам'яттю

Разом з т и м , з рис. 10.2 в и д н о , що р о з р и в з р о к а м и м і ж п р о д у к т и в н і с т ю п р о ц е с о р а і


статичної н а п і в п р о в і д н и к о в о ї п а м ' я т і є н е з н а ч н и м . Виглядає д о ц і л ь н и м п о б у д о в а о с н о ­
вної пам'яті к о м п ' ю т е р а на базі с т а т и ч н о ї н а п і в п р о в і д н и к о в о ї п а м ' я т і . О д н а к це не так,
оскільки, як в и д н о з табл. 10.2, з б е р і г а н н я 1МБ і н ф о р м а ц і ї в такій п а м ' я т і є п р и б л и з н о
в 100 разів д о р о ж ч и м , а н і ж в д и н а м і ч н і й н а п і в п р о в і д н и к о в і й п а м ' я т і . Тому був з н а й д е ­
ний н а с т у п н и й вихід з цієї ситуації - в к л ю ч е н н я м і ж о с н о в н о ю п а м ' я т т ю к о м п ' ю т е р а і
процесором додаткової ш в и д к о ї п а м ' я т і малої є м н о с т і , п о б у д о в а н о ї на основі статичної
напівпровідникової пам'яті.
Іще б і л ь ш и й р о з р и в існує м і ж п р о д у к т и в н і с т ю з о в н і ш н ь о ї д и с к о в о ї і д и н а м і ч н о ї на­
півпровідникової п а м ' я т і . О д н а к , як в и д н о з табл. 10.2, в а р т і с т ь з б е р і г а н н я 1 М Б і н ф о р ­
мації в дисковій п а м ' я т і п р и б л и з н о в 20 р а з і в м е н ш а , н і ж в д и н а м і ч н і й н а п і в п р о в і д н и ­
ковій пам'яті. Крім того, в о н а з а б е з п е ч у є з б е р і г а н н я з н а ч н о б і л ь ш и х о б ' є м і в і н ф о р м а ц і ї .
Тому і т у т в и н и к а є п о т р е б а п о ш у к у механізму, я к и й би з а б е з п е ч и в п р и с к о р е н н я о б м і н у
між основною і зовнішньою пам'яттю.

10.1.2. Властивість локальності за зверненням до пам'яті


Якщо розглянути процес виконання більшості програм, то з дуже високою ймовір­
ністю м о ж н а с п р о г н о з у в а т и , щ о а д р е с а чергової к о м а н д и п р о г р а м и а б о слідує б е з п о ­
середньо за адресою, за я к о ю була з ч и т а н а п о т о ч н а команда, а б о р о з т а ш о в а н а п о б л и з у
неї. Таке р о з т а ш у в а н н я адрес н а з и в а є т ь с я п р о с т о р о в о ю л о к а л ь н і с т ю к о м а н д п р о г р а м и .
Аналогічно м о ж н а с т в е р д ж у в а т и і п р о дані, які, як п р а в и л о , є с т р у к т у р о в а н и м и і, за­
звичай, зберігаються в п о с л і д о в н и х к о м і р к а х п а м ' я т і . Дана о с о б л и в і с т ь н а з и в а є т ь с я п р о ­
сторовою локальністю даних.
Крім того, п р о г р а м и містять безліч н е в е л и к и х ц и к л і в і п і д п р о г р а м . Це означає, що
невеликі н а б о р и к о м а н д м о ж у т ь багато р а з і в п о в т о р ю в а т и с я п р о т я г о м д е я к о г о інтер­
валу часу, т о б т о має місце часова л о к а л ь н і с т ь .
Т а к и м ч и н о м , і с н у є дві п е р е д б а ч у в а н і в л а с т и в о с т і п р о г р а м п р и з в е р н е н н і д о
пам'яті:
360

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


то з в е л и к о ю й м о в і р н і с т ю м о ж н а с т в е р д ж у в а т и , що в н а й б л и ж ч и й час відбудеться звер­
н е н н я до сусідньої к о м і р к и пам'яті;
• часова л о к а л ь н і с т ь - я к щ о відбулося з в е р н е н н я до деякої комірки пам'яті, то
з в е л и к о ю й м о в і р н і с т ю м о ж н а с т в е р д ж у в а т и , що в н а й б л и ж ч и й час знову відбудеться
з в е р н е н н я до тієї ж к о м і р к и пам'яті.
На рис. 10.4 н а в е д е н о т и п о в и й р о з п о д і л з в е р н е н ь до пам'яті, я к и й ілюструє наведену
в и щ е в л а с т и в і с т ь часової т а п р о с т о р о в о ї л о к а л ь н о с т і .

Адреси „цикловіітерації Л і н і й н а
послідовність

Вибірка
команди

Вибірка
даних

Час
Рис. 10.4. Типовий розподіл звернень до пам'яті

О б и д в а в и д и л о к а л ь н о с т і о б ' є д н у є п о н я т т я л о к а л ь н о с т і з а з в е р н е н н я м . Властивість
л о к а л ь н о с т і м о ж н а в и р а з и т и в чисельній ф о р м і і п р е д с т а в и т и у вигляді так званого пра­
вила «90/10»: 90 % часу р о б о т и п р о г р а м и п о в ' я з а н о з д о с т у п о м до 10 % адресного про­
стору цієї п р о г р а м и .
З в л а с т и в о с т і л о к а л ь н о с т і витікає, що п р о г р а м у р о з у м н о п р е д с т а в и т и у вигляді по­
слідовно о б р о б л ю в а н и х ф р а г м е н т і в - к о м п а к т н и х груп к о м а н д і даних. П о м і щ а ю ч и такі
ф р а г м е н т и в ш в и д ш у п а м ' я т ь , м о ж н а і с т о т н о п о н и з и т и загальні з а т р и м к и на звернення
до п а м ' я т і , о с к і л ь к и к о м а н д и і дані, будучи один р а з передані з повільного пристрою
п а м ' я т і в ш в и д к и й , потім м о ж у т ь в и к о р и с т о в у в а т и с я багато разів, і середній час досту­
пу до н и х в ц ь о м у в и п а д к у в и з н а ч а є т ь с я в ж е ш в и д ш и м п р и с т р о є м пам'яті. Це дозволяє
зберігати великі п р о г р а м и і м а с и в и д а н и х на повільних, великої ємності, але дешевих
п р и с т р о я х п а м ' я т і , а в процесі о б р о б к и а к т и в н о в и к о р и с т о в у в а т и ш в и д к у пам'ять по­
р і в н я н о н е в е л и к о ї є м н о с т і , з б і л ь ш е н н я якої п о в ' я з а н е з в е л и к и м и в и т р а т а м и .

10.1.3. Принцип ієрархічної організації пам'яті


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

Ці ф у н д а м е н т а л ь н і в л а с т и в о с т і п о з и т и в н о д о п о в н ю ю т ь одна о д н у з т о ч к и з о р у в и ­
рішення з а в д а н н я з а б е з п е ч е н н я необхідної є м н о с т і та високої швидкодії п а м ' я т і за п р и ­
йнятну ціну. Вони є п і д ґ р у н т я м доцільності в и к о р и с т а н н я при побудові системи п а м ' я т і
підходу, відомого як п р и н ц и п ієрархічної організації пам'яті.
Відповідно до ц ь о г о п р и н ц и п у п а м ' я т ь к о м п ' ю т е р а с к л а д а є т ь с я із п р и с т р о ї в п а м ' я т і
різних типів, які, з а л е ж н о від х а р а к т е р и с т и к , н а л е ж а т ь до п е в н о г о р і в н я ієрархії.
П а м ' я т ь н и ж ч о г о р і в н я має м е н ш у є м н і с т ь , ш в и д ш а і м а є в е л и к у в а р т і с т ь в п е р е р а ­
хунку на біт, ніж п а м ' я т ь в и щ о г о рівня. Рівні ієрархії в з а є м о з в ' я з а н і : всі дані на д е я к о м у
н и ж ч о м у рівні м о ж у т ь б у т и т а к о ж знайдені на в и щ о м у рівні, і всі дані на ц ь о м у в и щ о м у
рівні м о ж у т ь бути знайдені на н а с т у п н о м у в и щ о м у рівні і т. д.
З рухом вверх по ієрархічній структурі зменшується співвідношення вартість/біт, з р о с ­
тає ємність та час доступу. Однак завдяки властивості локальності за з в е р н е н н я м з р у х о м
вверх по ієрархічній структурі зменшується частота з в е р н е н н я до пам'яті з боку н и ж ч и х
рівнів, що веде до з м е н ш е н н я загальної вартості при з а д а н о м у рівні продуктивності.
На к о ж н о м у рівні ієрархії п а м ' я т ь р о з б и в а є т ь с я на блоки, які є н а й м е н ш о ю і н ф о р м а ­
ційною о д и н и ц е ю , що п е р е с и л а є т ь с я м і ж д в о м а сусідніми р і в н я м и ієрархії. Р о з м і р бло­
ків може бути ф і к с о в а н и м а б о з м і н н и м . П р и ф і к с о в а н о м у р о з м і р і блоку є м н і с т ь пам'яті
зазвичай кратна його розміру. Р о з м і р блоків на к о ж н о м у рівні ієрархії н а й ч а с т і ш е р і з н и й
і збільшується від н и ж ч и х рівнів до в и щ и х .
П р о ц е с о р взаємодіє з п а м ' я т т ю н а й н и ж ч о г о р і в н я ієрархії, яка р о з м і щ е н а н а й б л и ж ч е
до нього. П р и зверненні з б о к у п р о ц е с о р а до п а м ' я т і , н а п р и к л а д , д л я з ч и т у в а н н я к о м а н д
або даних, п р о в о д и т ь с я їх п о ш у к в п а м ' я т і н и ж н ь о г о р і в н я . Ф а к т в и я в л е н н я потрібної
інформації н а з и в а ю т ь п о п а д а н н я м (hit), і н а к ш е г о в о р я т ь п р о п р о м а х (miss). П р и п р о ­
маху п р о в о д и т ь с я п о ш у к п о т р і б н о ї і н ф о р м а ц і ї в п а м ' я т і н а с т у п н о г о в и щ о г о р і в н я , де
також м о ж л и в і п о п а д а н н я а б о п р о м а х и . Після в и я в л е н н я необхідної і н ф о р м а ц і ї в и к о н у ­
ється послідовне п е р е с и л а н н я в м і с т у блоку з ш у к а н о ю і н ф о р м а ц і є ю з в и щ и х рівнів на
нижчі. Слід з а з н а ч и т и , що н е з а л е ж н о від числа рівнів ієрархії, п е р е с и л а н н я і н ф о р м а ц і ї
може здійснюватися л и ш е м і ж д в о м а сусідніми р і в н я м и , т о б т о п е р е с и л а н н я і н ф о р м а ц і ї
в обхід деяких рівнів не д о п у с к а є т ь с я .
При проведенні о б м і н у і н ф о р м а ц і є ю б л о к а м и м і ж п р и с т р о я м и п а м ' я т і р і з н и х рівнів
ієрархії необхідно в и р і ш у в а т и н а с т у п н і п и т а н н я :
• вибрати п р а в и л о з а м і щ е н н я вмісту о д н и х блоків в м і с т о м і н ш и х блоків, оскільки
через м е н ш у ємність в п а м ' я т і н и ж ч о г о р і в н я не м о ж е б у т и т а к а сама кількість блоків, як
в пам'яті в и щ о г о рівня;
• в и з н а ч и т и д о п у с т и м е місце р о з т а ш у в а н н я н о в о г о в м і с т у блоку при записі з до­
триманням правила заміщення;
• вибрати та д о т р и м у в а т и с ь стратегії з а п и с у з м е т о ю з а б е з п е ч е н н я узгодженості
копій вмісту одних і тих же блоків, р о з т а ш о в а н и х на р і з н и х рівнях, при записі нової ін­
формації в копію, що з н а х о д и т ь с я на н и ж ч о м у рівні.

10.1.4. Характеристики ефективності ієрархічної організації пам'яті


При оцінці е ф е к т и в н о с т і ієрархічної організації п а м ' я т і в и к о р и с т о в у ю т ь н а с т у п н і
характеристики:
• коефіцієнт п о п а д а н ь відповідного р і в н я ієрархії п а м ' я т і - в і д н о ш е н н я числа
звернень з пам'яті даного р і в н я ієрархії до п а м ' я т і н а с т у п н о г о в и щ о г о рівня, п р и я к и х
362

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


пам'яті н а с т у п н о г о в и щ о г о р і в н я ієрархи. П о п а д а н н я - ф а к т в и я в л е н н я потрібної інфор­
мації п р и з в е р н е н н і д о п а м ' я т і н а с т у п н о г о в и щ о г о р і в н я ;
• к о е ф і ц і є н т п р о м а х і в - в і д н о ш е н н я числа з в е р н е н ь до п а м ' я т і наступного вищого
рівня, при я к и х м а в місце п р о м а х , до з а г а л ь н о г о числа з в е р н е н ь до п а м ' я т і даного рівня
ієрархії. Я к щ о п о з н а ч и т и к о е ф і ц і є н т п о п а д а н ь через к , а коефіцієнт промахів через к ,
ь т

то з а л е ж н і с т ь м і ж н и м и м о ж н а в и р а з и т и н а с т у п н о ю ф о р м у л о ю : к = 1 - к ;
т ь

• час з в е р н е н н я п р и п о п а д а н н і - час, необхідний для п о ш у к у потрібної інформації


в пам'яті н и ж ч о г о р і в н я ( в к л ю ч а ю ч и з ' я с у в а н н я , чи є з в е р н е н н я п о п а д а н н я м ) , плюс час
на ф а к т и ч н е з ч и т у в а н н я даних;
• в т р а т и на п р о м а х - час, п о т р і б н и й для з а м і н и блоку в пам'яті н и ж ч о г о рівня на
блок з п о т р і б н и м и д а н и м и , р о з т а ш о в а н и й у пам'яті н а с т у п н о г о (вищого) рівня.
• середній час д о с т у п у до п а м ' я т і , я к и й в и з н а ч а є т ь с я з в и р а з у : т. = : + к г , де ^
и ь т р

- час з в е р н е н н я п р и п о п а д а н н і , і - в т р а т и на промах. Імовірність п о п а д а н н я в сучасних


к о м п ' ю т е р а х є д о с и т ь в и с о к о ю (біля 95 % від з а г а л ь н о ї кількості з в е р н е н ь ) , і, відповідно,
коефіцієнт п р о м а х і в є н и з ь к и м . Однак, через в е л и к у р і з н и ц ю м і ж швидкодією пам'яті
н и ж ч о г о і в и щ о г о рівнів, н а в і т ь т а к и й н и з ь к и й к о е ф і ц і є н т п р о м а х і в с у т т є в о впливає на
середній час д о с т у п у до пам'яті. Так, я к щ о п р и й н я т и , що час д о с т у п у до пам'яті нижчого
р і в н я складає 1 такт, а час д о с т у п у до пам'яті в и щ о г о р і в н я в 10 разів більший, то серед­
ній час д о с т у п у буде р і в н и м 1 = 1 + 0.05 *10 = 1.5 т а к т и .

10.1.5. Ієрархічна пам'ять сучасного комп'ютера


С т р у к т у р а ієрархічної п а м ' я т і сучасного к о м п ' ю т е р а представлена на рис. 10.5.
Ємність, час доступу, вартість Ємність Продуктивність

Сотні ГБ.
десятки мс, Оптичні диски Магнітні стрічки
0.0000001
центів/біт • Файли
і (МБ)
Десятки ГБ.
одиниці мс. Магнітні диски RAID Флеш пам'ять
0.00001-0.000001
центів/біт
Сторінки
(0.5-8 КБ)

Одиниці МБ,
сотні мкс. Дискова кеш пам'ять
Сторінки
(0.5-8 КБ)
Одиниці ГБ,
сотні не, Основна пам'ять
0.0001-0.00001 центів/біт
Блоки
[8-128 Б)

Сотні КБ.
десятки не. Кеш пам'ять (L2)
0.5-0.1 центів/біт
Блоки
(8-128 Б)
Десятки КБ,
одиниці не, Кеш пам'ять (L1)
1 -0.5 центів/біт
Команди
та дані
(1-8 Б)
Сотні Б.
одиниці не
Регістри процесора

Рис. 10.5. Ієрархічна пам'ять


363

Н а й ш в и д ш и й , але і м і н і м а л ь н и й за ємністю, тип п а м ' я т і - це в н у т р і ш н і регістри п р о ­


цесора, тобто р е г і с т р о в и й ф а й л . Як п р а в и л о , кількість регістрів в р е г і с т р о в о м у ф а й л і
невелика ( т и п о в о 16-128). У архітектурі к о м п ' ю т е р а із с п р о щ е н о ю системою к о м а н д їх
число м о ж е доходити до декількох сотень. О с н о в н а п а м ' я т ь м а є з н а ч н о б і л ь ш у ємність.
Між регістрами п р о ц е с о р а і о с н о в н о ю п а м ' я т т ю часто р о з м і щ у ю т ь кеш п а м ' я т ь , я к а за
ємністю відчутно п р о г р а є основній пам'яті, але істотно п е р е в е р ш у є о с т а н н ю за ш в и д к о ­
дією, п о с т у п а ю ч и с ь у той же час р е г і с т р о в о м у файлу. У більшості сучасних к о м п ' ю т е р і в
є декілька рівнів кеш пам'яті, які п о з н а ч а ю т ь б у к в о ю L з н о м е р о м р і в н я кеш пам'яті. На
рис. 10.5 показані два таких рівні. В о с т а н н і х к о м п ' ю т е р а х все частіше з ' я в л я є т ь с я т а к о ж
третій рівень кеш п а м ' я т і (L3), п р и ч о м у р о з р о б н и к и к о м п ' ю т е р і в г о в о р я т ь п р о доціль­
ність введення і ч е т в е р т о г о рівня - L4. К о ж е н н а с т у п н и й р і в е н ь кеш пам'яті м а є більшу
ємність, але о д н о ч а с н о і м е н ш у ш в и д к о д і ю в п о р і в н я н н і з п о п е р е д н і м . За ш в и д к о д і є ю
будь-який рівень кеш пам'яті п е р е в е р ш у є о с н о в н у п а м ' я т ь . Ч о т и р и н и ж н і рівні ієрархії
утворюють в н у т р і ш н ю п а м ' я т ь к о м п ' ю т е р а , а всі вищі за н и х рівні - це з о в н і ш н я або
вторинна п а м ' я т ь .
Всі види в н у т р і ш н ь о ї п а м ' я т і р е а л і з у ю т ь с я на основі н а п і в п р о в і д н и к о в и х технологій
і, в основному, є е н е р г о з а л е ж н и м и .
Д о в г о т р и в а л е зберігання в е л и к и х о б ' є м і в і н ф о р м а ц і ї ( п р о г р а м і даних) з а б е з п е ч у ­
ється з о в н і ш н ь о ю п а м ' я т т ю , п е р ш и м рівнем якої є п а м ' я т ь на базі м а г н і т н и х дисків. Піс­
ля дискової пам'яті й д у т ь п р и с т р о ї архівної пам'яті, серед я к и х н а й п о ш и р е н і ш і п р и с т р о ї
на базі о п т и ч н и х дисків, на м а г н і т н и х стрічках та ф л е ш п а м ' я т ь .
Нарешті, ще один рівень ієрархії м о ж е бути д о д а н и й м і ж о с н о в н о ю п а м ' я т т ю і маг­
нітними дисками. Цей рівень н о с и т ь н а з в у дискової кеш п а м ' я т і і реалізується у вигляді
пристрою, що входить до складу магнітного диску. Дискова кеш п а м ' я т ь істотно покра­
щує ш в и д к і с т ь обміну і н ф о р м а ц і є ю між м а г н і т н и м и д и с к а м и і о с н о в н о ю п а м ' я т т ю .
Розглянемо далі п р и н ц и п и о б м і н у і н ф о р м а ц і є ю м і ж д в о м а б а з о в и м и р і в н я м и : між
п р о ц е с о р о м і о с н о в н о ю п а м ' я т т ю та між о с н о в н о ю і з о в н і ш н ь о ю п а м ' я т т ю .

10.2. Організація обміну інформацією між процесором


і основною пам'яттю через кеш пам'ять

10.2.1. Кеш пам'ять в складі комп'ютера


З в е р н е н н я п р о ц е с о р а до о с н о в н о ї п а м ' я т і з а в ж д и л о к а л і з о в а н о в н е в е л и к о м у діапа­
зоні змін її адрес. З а с т о с у в а н н я кеш п а м ' я т і ґ р у н т у є т ь с я на о б о х п р и н ц и п а х л о к а л ь н о с т і
за з в е р н е н н я м : в ній в и к о р и с т о в у є т ь с я часова локальність, о с к і л ь к и зберігається вміст
комірок, до я к и х недавно відбулося з в е р н е н н я , та в и к о р и с т о в у є т ь с я п р о с т о р о в а л о к а л ь ­
ність, оскільки в блоках д а н и х зберігається вміст м н о ж и н и сусідніх комірок.
Кеш п а м ' я т ь р о з т а ш о в а н а м і ж п р о ц е с о р о м і о с н о в н о ю п а м ' я т т ю . Це ш в и д к а б у ф е р н а
п а м ' я т ь невеликої ємності. Кеш п а м ' я т ь п р а ц ю є на близькій т а к т о в і й частоті до п р о ц е ­
сора і не п р и г а л ь м о в у є його роботу. Кеш п а м ' я т ь (cache в перекладі з англ. - т а й н и к ) за­
лишається п р о з о р о ю для програміста, т о м у щ о система к о м а н д п р о ц е с о р а , я к п р а в и л о ,
не містить к о м а н д р о б о т и з кеш п а м ' я т т ю .
Типовий фрагмент с т р у к т у р и сучасного комп'ютера, в я к о м у використовується два
рівні кеш пам'яті, подано на рис. 10.6. Для зберігання д а н и х і к о м а н д в кеш пам'яті п е р -
364

шого рівня в и к о р и с т а н о розділені кеш п а м яті даних і команд. В свою чергу, обидві кеш
пам'яті першого р і в н я з в ' я з а н і з є д и н о ю кеш п а м ' я т т ю другого рівня, я к а взаємодіє з
о с н о в н о ю п а м ' я т т ю . З р о з у м і л о , що обмін в підсистемі "кеш п а м ' я т ь Ь2 - кеш пам'ять да­
н и х ІЛ" є д в о с т о р о н н і м , а в підсистемі "кеш п а м ' я т ь Ь2 - кеш пам'ять команд ІЛ" - одно­
стороннім.
Рэздпенз Об'єднана Ба'атоблскова
кеш пам'ять кеш пам'ять ппчскна пам'ять з
Процесор команд і даних більшої ємкості розшаруванням

11
гСі^_и пам'ять Пам'ять™]
ком анд Ц Пам'ять"!
Об'єднана
ш. і 1 АРоі пам ять Пам'ять " !

ГФ • > К е ш пам'ять
Пам'ять_|
даних

багзтопортсвий
рэпстровкй файл

Рис. 10.6. Фрагмент структури сучасного комп'ютера

Наведена с т р у к т у р а е ф е к т и в н о п о є д н а л а р и с и П р и н с т о н с ь к о ї і Гарвардської архітек­


т у р . Такий підхід в и г і д н і ш и й , ніж п о б у д о в а ш в и д к о ї о с н о в н о ї пам'яті без використання
п р о м і ж н о ї кеш пам'яті.

10.2.2. Порядок взаємодії процесора і основної пам'яті через кеш пам'ять


О с н о в н і п р а в и л а організації кеш п а м ' я т і та о с н о в н о ї пам'яті, які забезпечують їх
ефективну взаємодію, є наступними:
• Кеш і о с н о в н а п а м ' я т і д і л я т ь с я на блоки о д н а к о в о г о розміру, т о б т о в о н и можуть
з м і щ у в а т и о д н а к о в у кількість слів.
• Б а з о в о ю п о р ц і є ю інформації, яка п е р е м і щ у є т ь с я м і ж о с н о в н о ю та кеш пам'яттю,
є вміст одного блоку.
• К о ж н и й блок м а є свій н о м е р .
• Н у м е р а ц і я к о м і р о к в к о ж н о м у блоці однакова.
• В к о ж н и й м о м е н т часу в блоках кеш пам'яті з н а х о д и т ь с я вміст декількох пере­
п и с а н и х із о с н о в н о ї п а м ' я т і блоків.
• К о ж н е слово кеш п а м ' я т і с у п р о в о д ж у є т ь с я а д р е с н и м тегом, що вказує на те, вміст
якого блоку о с н о в н о ї п а м ' я т і є п е р е п и с а н и м до блоку кеш пам'яті, в я к о м у знаходиться
слово.
• І д е н т и ч н і с т ь вмісту блоків кеш п а м ' я т і та о с н о в н о ї пам'яті забезпечується ви­
к о р и с т а н н я м с п е ц і а л ь н и х методів о н о в л е н н я в м і с т у блоків основної пам'яті.
• З а м і н а в м і с т у о д н и х блоків в кеш п а м ' я т і вмістом і н ш и х блоків з основної пам'яті
здійснюється з а п р а в и л а м и , які н а з и в а ю т ь а л г о р и т м о м з а м і щ е н н я .
• М і ж б л о к а м и о с н о в н о ї п а м ' я т і та кеш п а м ' я т і в с т а н о в л ю є т ь с я відповідність, яка
задається функцією відображення.
Я к щ о д о т р и м а н о в и щ е н а з в а н и х п р а в и л , т о в з а є м о д і я м і ж п р о ц е с о р о м , кеш пам'яттю
та основною пам'яттю відбувається наступним чином.
П р о ц е с о р ф о р м у є адреси для взаємодії з о с н о в н о ю пам'яттю і не враховує наявність
кеш пам'яті. Він в и д а є адресу комірки основної пам'яті і сигнали запису або зчитування.
Контролер кеш п а м ' я т і визначає, чи вміст блоку з даною коміркою знаходиться в кеш пам'я-
365

ті. Я к щ о так (попадання), то при з ч и т у в а н н і з п р о ц е с о р о м в з а є м о д і є л и ш е кеш пам'ять, а


при записі для забезпечення ідентичності вмісту блоків кеш і о с н о в н о ї пам'яті м о ж е бути
два варіанти. П р и п е р ш о м у варіанті здійснюється одночасний з а п и с операнда в комірку з
тією ж адресою в кеш пам'яті та в основній пам'яті. П р и д р у г о м у варіанті одночасний за­
пис не здійснюється, а використовується біт модифікації. Саме ж з а м і щ е н н я вмісту даної
комірки основної пам'яті відбувається пізніше, при з а м і щ е н н і в кеш пам'яті вмісту даного
блоку Оскільки п и т а н н я забезпечення ідентичності вмісту блоків кеш пам яті та основної
пам яті є в а ж л и в и м , в н а с т у п н о м у пункті в о н о буде р о з г л я н у т о детальніше
Я к щ о ж вміст блоку з з а д а н о ю к о м і р к о ю відсутній в кеш п а м ' я т і ( п р о м а х ) , то п р и
зчитуванні він п о с т у п а є із о с н о в н о ї п а м ' я т і в кеш п а м ' я т ь , а слово з заданої к о м і р к и
поступає п р я м о в п р о ц е с о р , або після п е р е с и л к и в м і с т у в с ь о г о блоку. П е р ш и й підхід
е ф е к т и в н і ш и й але с к л а д н і ш и й . П р и операції з а п и с у в ц ь о м у в и п а д к у слово з а п и с у є т ь с я
прямо в основну пам'ять
Таким ч и н о м , кеш п а м ' я т ь п е р е х о п л ю є сигнали ч и т а н н я / з а п и с у , які п р о ц е с о р надси­
лає до основної пам'яті, а коли п о т р і б н о , то надає п р о ц е с о р у копії даних, які т и м ч а с о в о
зберігає у власній р о б о ч і й пам'яті. Я к щ о кеш п а м ' я т ь с п р о м о ж н а п і д м і н и т и с о б о ю о с н о ­
вну п а м ' я т ь (у п о н а д 96-98 відсотків в и п а д к і в ) , тоді вона за р а х у н о к в л а с н и х р е с у р с і в
з а д о в о л ь н я є з а п и т п р о ц е с о р а . П р о ц е с о р не п р и г а л ь м о в у є т ь с я і п р о д о в ж у є п р а ц ю в а т и
на повній швидкості. Коли "підміна" о с н о в н о ї п а м ' я т і н е м о ж л и в а (менше від д в о х - ч о -
тирьох відсотків випадків), тоді кеш п а м ' я т ь з а л у ч а є до р о б о т и о с н о в н у п а м ' я т ь , обмін з
якою суттєво п р и г а л ь м о в у є п р о ц е с о р
Усі задачі, пов'язані з п е р е х о п л е н н я м з а п и т і в від п р о ц е с о р а до о с н о в н о ї пам'яті,
вирішує к о н т р о л е р кеш пам'яті, я к и й є її с к л а д о в о ю ч а с т и н о ю . Другою ч а с т и н о ю кеш
пам'яті є невелика р о б о ч а п а м ' я т ь , де зберігаються копії в м і с т у блоків о с н о в н о ї пам'яті,
що брали участь в о б с л у г о в у в а н н і о с т а н н і х з а п и т і в п р о ц е с о р а
Важливо, що вміст комірок о с н о в н о ї п а м ' я т і копіюється до кеш п а м ' я т і р а з о м із їх­
німи адресами. Саме ці адреси і д о з в о л я ю т ь к о н т р о л е р у кеш п а м ' я т і п р и й м а т и р і ш е н н я
про с п р о м о ж н і с т ь з а д о в о л ь н и т и к о н к р е т н и й п р о ц е с о р н и й з а п и т без з а л у ч е н н я д о о б ­
міну повільної основної п а м ' я т і

10.2.3. Забезпечення ідентичності вмісту блоків кеш пам'яті


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

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


з а п и с о п е р а н д а в к о м і р к у з тією ж а д р е с о ю як кеш, так і основної пам'яті. О с н о в н а пе­
ревага м е т о д у н а с к р і з н о г о з а п и с у п о л я г а є в тому, що коли вміст деякого блоку в кеш
пам яті м а є б у т и з а м і щ е н и й , то його м о ж н а не п о в е р т а т и в о с н о в н у пам'ять, оскільки
його копія т а м в ж е є. М е т о д д о с т а т н ь о п р о с т и й в реалізації. На ж а л ь , ефект від викорис­
т а н н я кеш п а м ' я т і ( с к о р о ч е н н я часу д о с т у п у ) с т о с о в н о о п е р а ц і й з а п и с у т у т відсутній.
Д а н и й метод з а с т о с о в а н и й в м і к р о п р о ц е с о р а х i486 ф і р м и Intel.
П е в н и й в и г р а ш д а є м о д и ф і к а ц і я м е т о д у наскрізного запису, відома як метод буфе-
р и з о в а н о г о н а с к р і з н о г о запису. І н ф о р м а ц і я с п о ч а т к у з а п и с у є т ь с я в кеш пам я т ь і в спе­
ц і а л ь н и й б у ф е р , що п р а ц ю є за схемою FIFO. З а п и с в о с н о в н у п а м ' я т ь п р о в о д и т ь с я вже
з буфера, а п р о ц е с о р , не чекаючи її з а к і н ч е н н я , м о ж е відразу ж п р о д о в ж у в а т и свою ро­
боту. З в и ч а й н о , відповідна логіка к е р у в а н н я п о в и н н а п і к л у в а т и с я п р о те, щ о б своєчасно
о ч и щ у в а т и з а п о в н е н и й буфер. П р и в и к о р и с т а н н і буферизації п р о ц е с о р повністю звіль­
н я є т ь с я від р о б о т и з о с н о в н о ю п а м ' я т т ю
Згідно з м е т о д о м з в о р о т н о г о запису, слово з а н о с и т ь с я л и ш е в кеш п а м я т ь . Якщо
вмісту п о т р і б н о г о блоку в кеш п а м ' я т і немає, то він спочатку пересилається з основної
пам яті, після чого з а п и с все о д н о в и к о н у є т ь с я в и к л ю ч н о в кеш п а м ' я т ь . П р и заміщенні
вмісту блоку його п о п е р е д н і й вміст необхідно заздалегідь переслати у відповідне місце
о с н о в н о ї пам'яті. Д л я м е т о д у з в о р о т н о г о запису, на відміну від методу наскрізного за­
пису, х а р а к т е р н и м є те, що при к о ж н о м у з ч и т у в а н н і з о с н о в н о ї п а м яті здійснюються два
п е р е с и л а н н я вмісту блоків м і ж о с н о в н о ю і кеш п а м ' я т т ю
Е ф е к т и в н і с т ь з в о р о т н о г о з а п и с у п і д в и щ у є т ь с я при в и к о р и с т а н н і біта модифікації.
Відповідно до м е т о д у з в о р о т н о г о з а п и с у з бітом модифікації, коли в я к о м у с ь блоці кеш
п а м яті п р о в о д и т ь с я з а м і щ е н н я вмісту, в с т а н о в л ю є т ь с я п о в ' я з а н и й з ц и м блоком біт мо­
дифікації ( п р а п о р е ц ь ) . П р и з а м і щ е н н і вміст блоку з кеш п а м яті переписується в осно­
в н у п а м ' я т ь л и ш е тоді, коли його біт м о д и ф і к а ц і ї в с т а н о в л е н и й в 1. Такий метод вико­
р и с т о в у є т ь с я , н а п р и к л а д , в м і к р о п р о ц е с о р а х класу i486 і Pentium ф і р м и Cyrix.
В с е р е д н ь о м у з в о р о т н и й з а п и с на 10 % е ф е к т и в н і ш и й за н а с к р і з н и й запис, але для
його реалізації п о т р і б н і додаткові апаратні в и т р а т и . З і н ш о г о боку, п р а к т и к а показує, що
операції з а п и с у с к л а д а ю т ь м е н ш е ЗО % від загальної кількості з в е р н е н ь до п а м яті. Таким
ч и н о м , відмінність з а ш в и д к о д і є ю між р о з г л я н у т и м и м е т о д а м и невелика
Крім р о з г л я н у т и х в и щ е методів з а б е з п е ч е н н я ідентичності вмісту блоків кеш пам яті
та о с н о в н о ї п а м ' я т і і с н у ю т ь й інші м е т о д и , п о в ' я з а н і з т и м , що п р и с т р о ї введення/ви­
ведення м о ж у т ь б е з п о с е р е д н ь о о б м і н ю в а т и с я і н ф о р м а ц і є ю з о с н о в н о ю пам яттю без
участі п р о ц е с о р а , а з н а ч и т ь і кеш пам'яті. Тобто в о с н о в н у пам я т ь з п р и с т р о ю введення,
м и н у в ш и п р о ц е с о р , з а н о с и т ь с я нова і н ф о р м а ц і я і невірною стає копія, що зберігається
в кеш пам'яті. З а п о б і г т и подібній н е у з г о д ж е н о с т і д о з в о л я ю т ь два підходи: забезпечити
в в е д е н н я будь-якої і н ф о р м а ц і ї в о с н о в н у п а м ' я т ь з п р о в е д е н н я м відповідних змін в кеш
пам яті, або з д і й с н ю в а т и д о с т у п до о с н о в н о ї п а м ' я т і л и ш е через кеш п а м ' я т ь

10.2.4. Функція відображення

10.2.4.1. Типи функцій відображення

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


о с н о в н о ї пам'яті.
367

Існує три о с н о в н и х т и п и в і д о б р а ж е н н я : п о в н і с т ю асоціативне, п р я м е т а ч а с т к о в о -


асоціативне. Рис. 10.7 дає п о я с н е н н я к о ж н о м у т и п у в і д о б р а ж е н н я . П р и а с о ц і а т и в н о м у
відображенні вміст будь-якого блоку о с н о в н о ї п а м ' я т і м о ж е з н а х о д и т и с ь в б у д ь - я к о м у
блоці кеш пам'яті. Тобто вміст 12-го блоку о с н о в н о ї пам'яті, наведеної на р и с . 10.7, м о ж е
бути з а п и с а н и й до б у д ь - я к о г о з 8 блоків кеш пам'яті. П р и п р я м о м у в і д о б р а ж е н н і вміст
кожного блоку о с н о в н о ї п а м ' я т і м о ж н а к о п і ю в а т и не до будь-якого, а л и ш е до наперед
визначеного блоку кеш пам'яті. Н а п р и к л а д , це м о ж е бути в і д о б р а ж е н н я вмісту блоку
К основної п а м ' я т і в блок ( К ) т о а р кеш п а м ' я т і , де р - кількість блоків в кеш пам'яті.
Тобто 12 блок о с н о в н о ї пам'яті на рис. 10.7 м о ж е б у т и з а п и с а н и й л и ш е до 4 блоку кеш
пам'яті, так як ( 1 2 ) т о с І 8 = 4. П р и ч а с т к о в о - а с о ц і а т и в н о м у в і д о б р а ж е н н і вміст к о ж н о г о
блоку основної п а м ' я т і м о ж н а копіювати не до будь-якого, а до кількох н а п е р е д визначе­
них блоків кеш пам'яті. Н а п р и к л а д , це м о ж е б у т и в і д о б р а ж е н н я вмісту блоку К о с н о в н о ї
пам'яті в д о в і л ь н и й блок сектора (К)тосІ5 к е ш п а м ' я т і , де в - кількість секторів в кеш
пам'яті. Тобто вміст 12-го блоку о с н о в н о ї п а м ' я т і на рис. 10.7 м о ж е бути з а п и с а н и й л и ш е
до блоку 0 або блоку 1 сектора 0 кеш п а м ' я т і , так як ( 1 2 ) т о с І 4 = 0.
Асоціативне відображення. Пряме відображення, Множиино-асоціаінвне відображення,
вміст блоку 12 основної пам'яті вмістблоку 12 основної пам'яті вміст блоку 12 основної пам'яті
може знаходитись в будь-якому може знаходитись лише в може знаходитись в блоках 0.1
блоці кеш пам'яті блоці 4 кеш пам'яті (12mod8) сектора 0 кеш пам'яті ( 1 2 т о о Ч )

Номер 0 1 г 3 4 З В 7 Номер 0 12 3 4 3 * 7 Номер 01 2 З б З CS 7


блоку блоку блоку

Кеш
пам'ять

Номер
секторе о і г з

номер і і і і і і і і і і гг г гг гггггзз
блоку 0 1 2 3 * 5 8 / 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

Основна
пам'ять

Рис. 10.7. Три основних типи відображення

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


пам'яті при в и к о р и с т а н н і к о ж н о г о т и п у в і д о б р а ж е н н я п р и й м е м о , щ о о с н о в н а п а м ' я т ь
має ємність 1 ГБ, а кеш п а м ' я т ь м а є є м н і с т ь 16 КБ, в о н и поділені на б л о к и є м н і с т ю по 32
Б, тобто в основній пам'яті є 2 блоків, а в кеш п а м ' я т і - 512 блоків.
25

10.2.4.2. Повністю асоціативне відображення

Взаємодія основної пам'яті з кеш п а м ' я т т ю з в и к о р и с т а н н я м повністю асоціативного


відображення п о к а з а н а на рис. 10.8 а.
368

Кеш пам'ять О с н о в н а пам'ять

Блок 0 Блок 0
Тег

Тег Блок 1 Блок 1

Тег Блок 2

Блок і
Адреса основної
пам'яті

Блок
Тег Б л о к 511 25
33554431
Тег Слово

а) -Ь)

Рис. 10.8. Взаємодія основної пам'яті з кеш пам'яттю з використанням повністю асоціативного
відображення а) та формат адреси основної пам'яті Ь)

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


м о ж е з н а х о д и т и с ь в б у д ь - я к о м у блоці кеш пам'яті. П р и в и к о р и с т а н н і асоціативного ві­
д о б р а ж е н н я адреса, я к а п о с т у п а є з п р о ц е с о р а до о с н о в н о ї пам'яті, ділиться на два поля:
поле тега і поле слова (рис. 10.8 Ь). Вміст п о л я тега вказує а д р е с у блоку в основній пам'я­
ті. Р о з р я д н і с т ь ц ь о г о п о л я рівна k = l o g K , де К - кількість блоків в основній пам'яті. А
2

вміст п о л я слова вказує а д р е с у слова в блоці. Р о з р я д н і с т ь ц ь о г о поля рівна m = l o g M , де 2

М - кількість слів в блоці.


П р и д а н о м у способі в і д о б р а ж е н н я к о ж е н р я д о к кеш п а м ' я т і в м і щ у є н а с т у п н у інфор­
м а ц і ю : тег, я к и й в к а з у є вміст я к о г о блоку о с н о в н о ї п а м ' я т і п е р е п и с а н о до даного блоку
кеш пам'яті, р о з р я д д о с т о в і р н о с т і (valid bit V ) , я к и й вказує, чи вміст даного блоку кеш
п а м ' я т і дійсно н а л е ж и т ь в к а з а н о м у тегом блоку о с н о в н о ї пам'яті, р о з р я д модифікації
(dirty bit D ) , я к и й і н ф о р м у є п р о в н е с е н н я змін до вмісту блоку кеш пам'яті, а т а к о ж вміст
в к а з а н о г о тегом блоку о с н о в н о ї пам'яті. В и к о р и с т а н н я р о з р я д у модифікації пов'язано з
т и м , що вміст блоку в кеш п а м ' я т і м о ж е з м і н ю в а т и с ь . Тому, я к щ о він не змінився, немає
необхідності п е р е п и с у в а т и його н а з а д до о с н о в н о ї пам'яті, так як там вже є копія. Якщо
ж з м і н и в с я , п о т р і б н о п е р е п и с а т и . Тому д л я фіксації змін в блоках кеш пам'яті до ряд­
ка кеш п а м ' я т і і в в о д и т ь с я р о з р я д м о д и ф і к а ц і ї D, я к и й д о з в о л я є с у т т є в о з м е н ш и т и час
обміну. Коли п р о ц е с о р у п о т р і б н и й о п е р а н д із блоку з п е в н о ю адресою, к о н т р о л е р кеш
п а м ' я т і п о в и н е н ш у к а т и його ш л я х о м п о р і в н я н н я в і д п о в і д н и х р о з р я д і в адреси з тегами
всіх блоків кеш пам'яті. Я к щ о таке п о р і в н я н н я з д і й с н ю в а т и послідовно, то кеш пам'ять
в т р а ч а є зміст через н и з ь к у ш в и д к о д і ю . Д о ц і л ь н і ш е таке п о р і в н я н н я р о б и т и одночасно
зі всіма тегами, як це п о к а з а н о на рис. 10.9. В ц ь о м у в и п а д к у кожен блок кеш пам'яті
п о в и н е н м і с т и т и свій к о м п а р а т о р , т о б т о це буде п а м ' я т ь з а с о ц і а т и в н и м д о с т у п о м . При
н а я в н о с т і в кеш п а м ' я т і відповідного тега, та п р и о д и н и ч н о м у значенні р о з р я д у досто­
вірності, кеш п а м ' я т ь в и д а є сигнал п і д т в е р д ж е н н я п о п а д а н н я та надає доступ до відпо­
відного блоку.
369

к бітів т бітів

Номер
Тег слова

Компаратор Тег у Г)

5 Дані

Попадання

Рис. 10.9. Ідентифікація даних в кеш пам'яті з асоціативним доступом

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


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

70.2.4.3. Пряме відображення

Взаємодія о с н о в н о ї п а м ' я т і з кеш п а м ' я т т ю з в и к о р и с т а н н я м п р я м о г о в і д о б р а ж е н ­


ня п о к а з а н а на рис. 10.10а. Тут вміст к о ж н о г о б л о к у о с н о в н о ї п а м ' я т і м о ж н а копіюва­
ти л и ш е до н а п е р е д в и з н а ч е н о г о б л о к у кеш п а м ' я т і О д н а з м о ж л и в и х р е а л і з а ц і й в и ­
користовує р о з р я д н е в і д о б р а ж е н н я . Тут д о д а т к о в о д о того, я к ц е було з р о б л е н о д л я
асоціативного в і д о б р а ж е н н я , к - р о з р я д н е поле а д р е с и б л о к у в о с н о в н і й п а м ' я т і р о з б и ­
вається на дві ч а с т и н и : поле тега г та поле н о м е р а блоку в (рис. ІО.ІОЬ). Тим с а м и м
основна п а м ' я т ь д і л и т ь с я на секції, за к о ж н о ю з я к и х з а к р і п л ю є т ь с я в і д п о в і д н а б и р к а
(або о з н а к а ) , я к у н а з и в а ю т ь тегом. К і л ь к і с т ь Рч секцій (а з н а ч и т ь і кількість тегів) рівна
в і д н о ш е н н ю є м н о с т і о с н о в н о ї п а м ' я т і до є м н о с т і кеш п а м ' я т і , або, що є т и м с а м и м ,
в і д н о ш е н н ю кількості К блоків в о с н о в н і й п а м ' я т і , до кількості 8 блоків в кеш п а м ' я т і .
Р о з р я д н і с т ь п о л я т е г а в и з н а ч а є т ь с я з в и р а з у г = ^ К / 5 = ^ ( 2 / 2 ) = к - в. К і л ь к і с т ь
2 2
к 5

Б блоків в к о ж н і й секції рівна кількості блоків в кеш п а м ' я т і . Т о б т о є м н і с т ь секції рівна


ємності кеш п а м ' я т і .
Н а п р и к л а д , я к щ о в адресі блоку о с н о в н о ї п а м ' я т і п р и с у т н і к р о з р я д і в , то м о л о д ш і п з
них в и б и р а ю т ь , в я к и й блок кеш п а м ' я т і м о ж е копіюватись вміст блоку о с н о в н о ї пам'яті.
Отже, вміст всіх блоків з о д н а к о в и м и м о л о д ш и м и а д р е с а м и п о т р а п л я є в один і той са­
мий блок кеш пам'яті. Інші г=к-в р о з р я д і в адреси, що з а л и ш и л и с я , в и к о р и с т о в у ю т ь с я як
адресний тег, я к и й в и к о р и с т о в у є т ь с я для п о р і в н я н н я з а д р е с о ю , в и д а н о ю п р о ц е с о р о м з
метою п о ш у к у н о м е р а секції в о с н о в н і й пам'яті.
370

Кеш пам'яті» Основна пам'ять

Ти Блок 0

Ter Блок 1

Ter Блок 2

Адреса основної нам'яті


Ter Блок 511
16
Ter Блок Слово

а) Ь)

Рис. 10.10. Взаємодія основної пам'яті з кеш пам'яттю з використанням прямого


відображення а) та формат адреси основної пам'яті Ь)

Д л я наведеної в и щ е у м о в и , коли що о с н о в н а пам я т ь м а є є м н і с т ь 1 ГБ, а кеш пам ять -


16 КБ, в о н и поділені на блоки є м н і с т ю по 32 Б, т о б т о кількість блоків в основній пам'яті
рівна 2 , а в кеш п а м ' я т і - 2 , м а є м о : повна р о з р я д н і с т ь адреси п = ЗО, п р и ч о м у поле
25 9

адреси блоків о с н о в н о ї п а м ' я т і з а й м а є k = 25 р о з р я д і в , поле номера тега (тобто номера


секції в о с н о в н і й пам'яті) г = 16 р о з р я д і в , поле н о м е р а блоку в секції (в кеш пам'яті)
п = 9 р о з р я д і в , поле а д р е с и слова в блоці m = 5 р о з р я д і в (рис. 10.10b). З а у в а ж и м о , що
п р о ц е с о р не с п р и й м а є с т р у к т у р н о ї інтерпретації адреси, наведеної на рис. 10.10b. Таку
і н т е р п р е т а ц і ю адресі надає л и ш е к о н т р о л е р кеш пам'яті, коли перехоплює цю адресу,
що п р и з н а ч е н а о с н о в н і й п а м ' я т і (в гарвардській архітектурі це м о ж е б у т и як пам'ять
даних, так і п а м ' я т ь к о м а н д ) . К о н т р о л е р кеш п а м ' я т і за д о п о м о г о ю дев'яти середніх роз­
р я д і в слова адреси з в е р т а є т ь с я до в и з н а ч е н о г о ц и м и р о з р я д а м и блоку власної пам'яті.
З р о з у м і л о , що ш у к а н и й в т а к и й спосіб блок з а в ж д и п р и с у т н і й в кеш пам'яті. Адже кеш
п а м ' я т ь в м і щ у є 512 блоків. Але вміст в і д н а й д е н о г о блоку кеш пам'яті м о ж е бути копією
не одного, а одного з декількох д о з в о л е н и х на к о п і ю в а н н я блоків основної пам'яті. На­
п р и к л а д , до н у л ь о в о г о блоку кеш п а м ' я т і д о з в о л е н о копіювати вміст н а с т у п н и х блоків
о с н о в н о ї пам'яті: 0, 128, 256, 512 і т. д. Усього до к о ж н о г о блоку кеш пам'яті м о ж н а ско­
піювати вміст одного з 2 = 65536 блоків о с н о в н о ї пам'яті, оскільки ємність основної
16

п а м ' я т і в 65536 разів п е р е в и щ у є ємність кеш пам'яті. П о с т а є з а в д а н н я визначити, чи є


п о т о ч н е н а п о в н е н н я в к а з а н о г о блоку кеш п а м ' я т і в і д п о в і д н и м до з а п и т у процесора. За­
в д а н н я р о з в ' я з у ю т ь за д о п о м о г о ю вмісту с т а р ш и х 16 бітів адреси о с н о в н о ї пам'яті, які
у т в о р ю ю т ь поле із н а з в о ю Ter
О с н о в н о ю перевагою т у т є те, що кеш п а м ' я т ь м а є с т р у к т у р у з в и ч а й н о ї пам'яті з до­
в і л ь н и м д о с т у п о м , т о м у потрібен л и ш е один к о м п а р а т о р (рис. 10.11).
371

г бітів s бітів m бітів


Номер блоку в Номер
Тег кеш пам'яті слова
Блок Адреса

і ег V 1>

KorVfiapaTcp ~J
Слово
X САМ>>
Попадання

Рис. 10.11. Ідентифікація даних в кеш пам'яті з довільним доступом

П р и д а н о м у способі в і д о б р а ж е н н я к о ж е н р я д о к кеш п а м ' я т і в м і щ у є н а с т у п н у і н ф о р ­


мацію: тег, я к и й вказує вміст блоку з якої секції о с н о в н о ї п а м ' я т і п е р е п и с а н о до даного
блоку кеш пам'яті, р о з р я д д о с т о в і р н о с т і (valid bit V ) , я к и й вказує чи вміст д а н о г о блоку
кеш пам'яті дійсно н а л е ж и т ь блоку о с н о в н о ї п а м ' я т і , в к а з а н о м у s р о з р я д а м и поля адре­
си, р о з р я д модифікації (dirty bit D), я к и й і н ф о р м у є п р о в н е с е н н я змін до вмісту блоку
кеш пам'яті, а т а к о ж вміст блоку о с н о в н о ї п а м ' я т і , в к а з а н о г о s р о з р я д а м и поля адреси.
Коли п р о ц е с о р у п о т р і б н и й о п е р а н д із блоку з п е в н о ю адресою, к о н т р о л е р кеш пам'яті
вибирає з пам'яті тегів в і д п о в і д н и й н о м е р у блоку в кеш пам'яті тег, та п о р і в н ю є його з
відповідними г р о з р я д а м и адреси, в я к и х в к а з а н о тег. П р и н а я в н о с т і в кеш п а м ' я т і від­
повідного тега та при о д и н и ч н о м у значенні р о з р я д у достовірності кеш п а м ' я т ь видає
сигнал п і д т в е р д ж е н н я п о п а д а н н я та надає д о с т у п до відповідного блоку
О т ж е п а м ' я т ь такого т и п у м о ж е мати в е л и к у ємність. О с н о в н и й недолік закріплен­
ня за к о ж н и м блоком однієї секції о с н о в н о ї п а м ' я т і одного блоку в кеш пам'яті, т о м у
в кеш пам'яті м о ж е з н а х о д и т и с ь о б м е ж е н е ч и с л о вмісту блоків о с н о в н о ї п а м ' я т і Я к щ о
процесор п о ч е р г о в о з в е р т а є т ь с я до д а н и х з д в о х різних секцій о с н о в н о ї пам'яті, які ві­
д о б р а ж а ю т ь с я на той же блок кеш пам'яті, то й м о в і р н і с т ь п о п а д а н н я буде н и з ь к о ю . Як
наслідок, з б і л ь ш у є т ь с я кількість п р о м а х і в і, відповідно, час з в е р н е н н я до пам'яті

10.2.4.4. Частково-асоціативне відображення

Взаємодія основної пам'яті з кеш п а м ' я т т ю з в и к о р и с т а н н я м частково-асоціативного


відображення показана на рис. 10.12а. Тут послідовно розміщені блоки кеш пам'яті об'єд­
нуються в сектори рівної ємності. Зазвичай один сектор містить 2, 4, 8 блоків. Основна
пам'ять ділиться на секції, за кожною з я к и х закріплюється тег, що вказує номер секції.
Кількість таких секцій рівна відношенню ємності основної пам'яті до ємності секції. П р и
цьому ємність секції рівна відношенню ємності кеш пам'яті до кількості блоків в секторі
кеш пам'яті. Тобто кількість блоків в секції основної пам'яті рівна кількості блоків в кеш
пам'яті, поділеній на кількість блоків в секторі кеш пам'яті. Таким ч и н о м , в такій реаліза­
ції, як і при п р я м о м у відображенні, використовується схема в и б о р у сектора в кеш пам'яті
за молодшими р о з р я д а м и адреси блоку основної пам'яті, але в такому секторі кеш п а м ' я т і
знаходиться о д р а з у вміст декількох блоків о с н о в н о ї пам'яті, в и б і р м і ж я к и м и здійсню-
372

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


в і д о б р а ж е н н я , к - р о з р я д н е поле а д р е с и блоку в о с н о в н і й пам'яті р о з б и в а є т ь с я на дві час­
т и н и : поле тега г та поле н о м е р а блоку Б (рис. 10.12Ь), п р и ч о м у тег вказує номер секції
о с н о в н о ї пам'яті, а в полі н о м е р а блоку в к а з у є т ь с я н о м е р блоку в секції основної пам'яті
та відповідно в кеш п а м ' я т і .
Кки ЛФК'ЯГПЬ

Тег Блок о
Сектор 0
Тег Блюк >

23 ES3
Сектор І
Ш

Тег
Сектор 127
Тгг Б/кж 511

АірК» (кковжі плихті

17 8
І £

Тег Блок Слово

Рис. 10.12. Взаємодія основної пам'яті з кеш пам'яттю з використанням частково-асоціативного


відображення а), коли кількість блоків в секторі кеш пам'яті рівна 2, та формат
адреси основної пам'яті Ь)

Для наведеного в и щ е прикладу, коли кількість блоків в о с н о в н і й пам'яті рівна 2 , а 25

в кеш пам'яті - 2 , п р и ч о м у кількість блоків в секторі кеш пам'яті рівна 2, м а є м о : повна


9

р о з р я д н і с т ь а д р е с и п = ЗО, п р и ч о м у поле а д р е с и блоків основної пам'яті з а й м а є k = 25


р о з р я д і в , поле н о м е р а тега ( т о б т о н о м е р а секції в о с н о в н і й пам'яті) г = 17 р о з р я д і в , поле
н о м е р а блоку в секції (в кеш пам'яті) п = 8 р о з р я д і в , поле адреси слова в блоці m = 5 роз­
р я д і в (рис. 10.12b).
К о н т р о л е р кеш п а м ' я т і за д о п о м о г о ю в о с ь м и середніх р о з р я д і в слова адреси зверта­
ється до в и з н а ч е н о г о ц и м и р о з р я д а м и блоку власної пам'яті. З р о з у м і л о , що ш у к а н и й в
т а к и й спосіб блок з а в ж д и п р и с у т н і й в кеш пам'яті. А д ж е кеш п а м ' я т ь в м і щ у є 512 блоків.
Але вміст в і д н а й д е н о г о блоку кеш п а м ' я т і м о ж е б у т и копією не одного, а одного з декіль­
кох д о з в о л е н и х на к о п і ю в а н н я блоків о с н о в н о ї пам'яті. Н а п р и к л а д , до нульового блоку
кеш п а м ' я т і д о з в о л е н о копіювати вміст н а с т у п н и х блоків основної пам'яті: 0, 64, 128,
192, 256 і т. д. Усього до к о ж н о г о блоку кеш п а м ' я т і м о ж н а скопіювати вміст одного з 2 = 17

131072 блоків о с н о в н о ї п а м ' я т і , о с к і л ь к и є м н і с т ь о с н о в н о ї п а м ' я т і в 131072 разів переви­


щ у є є м н і с т ь кеш пам'яті. Д л я того, щ о б в и з н а ч и т и , чи є п о т о ч н е н а п о в н е н н я вказаного
б л о к у кеш п а м ' я т і в і д п о в і д н и м д о з а п и т у п р о ц е с о р а , в и к о р и с т о в у ю т ь в м і с т с т а р ш и х
17 бітів адреси о с н о в н о ї пам'яті.
П о т р і б н о відзначити, щ о я к р а з ч а с т к о в о - а с о ц і а т и в н е в і д о б р а ж е н н я найчастіше ви­
к о р и с т о в у є т ь с я в с у ч а с н и х к о м п ' ю т е р а х , п р и ч о м у кількість блоків в одній секції кеш
п а м ' я т і з а з в и ч а й не п е р е в и щ у є чотирьох. О с н о в н о ю перевагою т у т є те, що кеш пам'ять
п о є д н у є переваги п а м ' я т і з д о в і л ь н и м та з а с о ц і а т и в н и м д о с т у п о м (рис. 10.13).
373

г бітів s бітів m бітів


Номер блоку в Номер
Ter
кеш пам'яті слова
Адреса

ter' V

"со»; ho
Попадання
С Слово
Адреса

Тег V
Блок
Рис. 10.13. Ідентифікація даних в кеш пам'яті з частково-асоціативним доступом

П р и д а н о м у способі в і д о б р а ж е н н я к о ж е н р я д о к кеш п а м ' я т і в м і щ у є н а с т у п н у і н ф о р ­


мацію: тег, я к и й вказує вміст блоку якої секції о с н о в н о ї п а м ' я т і п е р е п и с а н о до даного
блоку кеш пам'яті, р о з р я д достовірності (valid bit V ) , я к и й в к а з у є , чи вміст даного блоку
кеш пам'яті дійсно н а л е ж и т ь блоку о с н о в н о ї п а м ' я т і , в к а з а н о м у s р о з р я д а м и поля адре­
си, р о з р я д модифікації (dirty bit D ) , я к и й і н ф о р м у є п р о в н е с е н н я змін до вмісту блоку
кеш пам'яті, а т а к о ж вміст блоку о с н о в н о ї пам'яті, в к а з а н о г о s р о з р я д а м и поля адреси.
Коли п р о ц е с о р у п о т р і б н и й о п е р а н д із блоку з п е в н о ю а д р е с о ю , к о н т р о л е р кеш пам'яті
вибирає з секторів пам'яті тегів відповідні н о м е р у блоку в к е ш п а м ' я т і теги, та п о р і в н ю є
їх з в і д п о в і д н и м и г р о з р я д а м и а д р е с и , в я к и х в к а з а н о тег. П р и н а я в н о с т і в кеш п а м ' я т і
відповідного тега, та при о д и н и ч н о м у значенні р о з р я д у д о с т о в і р н о с т і , кеш п а м ' я т ь в и ­
дає сигнал п і д т в е р д ж е н н я п о п а д а н н я та н а д а є д о с т у п до в і д п о в і д н о г о блоку.

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


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

Серед безлічі м о ж л и в и х а л г о р и т м і в з а м і щ е н н я н а й п о ш и р е н і ш и м и є ч о т и р и , що роз­


г л я д а ю т ь с я далі у п о р я д к у з м е н ш е н н я їх відносної е ф е к т и в н о с т і .
Н а й б і л ь ш е ф е к т и в н и м є а л г о р и т м з а м і щ е н н я L R U (Least Recently Used), я к и й пе­
р е д б а ч а є з а м і щ е н н я блоків з н а й д а в н і ш и м в и к о р и с т а н н я м , оскільки він базується на
в л а с т и в о с т і часової л о к а л ь н о с т і . За ц и м а л г о р и т м о м з а м і щ у є т ь с я вміст того блоку кеш
п а м ' я т і , до я к о г о н а й д о в ш е не було з в е р н е н н я . Н а й в і д о м і ш і два с п о с о б и апаратурної
реалізації ц ь о г о алгоритму. У п е р ш о м у з н и х за к о ж н и м блоком кеш пам'яті закріплюють
л і ч и л ь н и к . До в м і с т у всіх л і ч и л ь н и к і в через певні інтервали часу додається одиниця.
П р и з в е р н е н н і до блоку його л і ч и л ь н и к в с т а н о в л ю є т ь с я в н у л ь о в и й стан. Таким чином,
н а й б і л ь ш е ч и с л о буде в л і ч и л ь н и к у того блоку, до я к о г о н а й д о в ш е не було звернень, і
вміст ц ь о г о блоку є п е р ш и м к а н д и д а т о м на з а м і щ е н н я . Другий спосіб реалізується за до­
п о м о г о ю черги, куди у п о р я д к у з а п о в н е н н я блоків кеш пам'яті з а н о с я т ь с я п о с и л а н н я на
ці блоки. П р и к о ж н о м у з в е р н е н н і до блоку п о с и л а н н я на н ь о г о п е р е м і щ у є т ь с я в кінець
черги. В результаті п е р ш и м в черзі к о ж н о г о р а з у о п и н я є т ь с я п о с и л а н н я на блок, до якого
н а й д о в ш е не було з в е р н е н ь . Вміст саме ц ь о г о блоку п е р ш за все і з а м і щ у є т ь с я .
І н ш и й м о ж л и в и й а л г о р и т м з а м і щ е н н я - а л г о р и т м , що п р а ц ю є за п р и н ц и п о м "пер­
ш и й у в і й ш о в , п е р ш и й в и й ш о в " (FIFO - First In First Out). Тут з а м і щ у є т ь с я вміст блоку,
що н а й д о в ш е з н а х о д и в с я в кеш п а м ' я т і . А л г о р и т м легко реалізується за допомогою роз­
г л я н у т о ї р а н і ш е черги, з тією л и ш е р і з н и ц е ю , що після з в е р н е н н я до блоку положення
відповідного п о с и л а н н я в черзі не з м і н ю є т ь с я .
Ще один а л г о р и т м - заміна вмісту блоку, що н а й м е н ш е в и к о р и с т о в у в а в с я ( L F U - Le­
ast Frequently Used). З а м і щ у є т ь с я вміст того блоку в кеш пам'яті, до якого було менше
в с ь о г о з в е р н е н ь . П р и н ц и п м о ж н а р е а л і з у в а т и , п о в ' я з а в ш и кожен блок з лічильником
з в е р н е н ь , до вмісту я к о г о після к о ж н о г о з в е р н е н н я додавати о д и н и ц ю . Головним пре­
т е н д е н т о м на з а м і щ е н н я є вміст блоку, л і ч и л ь н и к я к о г о містить н а й м е н ш е число.
П р о с т и й а л г о р и т м з а м і щ е н н я - д о в і л ь н и й вибір блоку для з а м і н и його вмісту. Блок,
вміст я к о г о з а м і н ю є т ь с я , в и б и р а є т ь с я в и п а д к о в и м ч и н о м . Ц е м о ж е бути реалізовано,
н а п р и к л а д , за д о п о м о г о ю л і ч и л ь н и к а , вміст я к о г о з б і л ь ш у є т ь с я на о д и н и ц ю з кожним
т а к т о в и м і м п у л ь с о м , н е з а л е ж н о від того, що м а л о місце - п о п а д а н н я чи промах. Значен­
ня в л і ч и л ь н и к у в и з н а ч а є блок, вміст я к о г о буде з а м і н е н о в повністю асоціативній кеш
п а м ' я т і , або в о н о в и з н а ч а є блок в м е ж а х сектора, вміст я к о г о буде з а м і н е н о в частково-
асоціативній кеш пам'яті. Д а н и й а л г о р и т м в и к о р и с т о в у є т ь с я в к р а й рідко.
Ч а с т і ш е п о п е р е д н ь о г о в и к о р и с т о в у ю т ь а л г о р и т м в и п а д к о в о г о з а м і щ е н н я вмісту
блоків кеш п а м ' я т і за з н а ч е н н я м л і ч и л ь н и к а в и п а д к о в и х чисел, оскільки за ефективніс­
тю він є б л и з ь к и м до а л г о р и т м у L R U та п р о с т і ш и м за нього в реалізації.

10.2.6. Підвищення ефективності кеш пам'яті


Х а р а к т е р и с т и к и , які в и к о р и с т о в у ю т ь при оцінці е ф е к т и в н о с т і ієрархічної організа­
ції п а м ' я т і , п і д х о д я т ь і д л я о ц і н к и е ф е к т и в н о с т і кеш пам'яті. До ц и х характеристик на­
лежать наступні:
• к о е ф і ц і є н т п о п а д а н ь - в і д н о ш е н н я числа п о п а д а н ь до з а г а л ь н о г о числа звернень
п р о ц е с о р а до о с н о в н о ї пам'яті, де під п о п а д а н н я м р о з у м і є т ь с я в и я в л е н н я в кеш пам'яті
п о т р і б н о ї і н ф о р м а ц і ї , п р и з в е р н е н н і д о о с н о в н о ї пам'яті;
• к о е ф і ц і є н т п р о м а х і в - в і д н о ш е н н я числа п р о м а х і в до з а г а л ь н о г о числа звернень
п р о ц е с о р а до о с н о в н о ї пам'яті, де під п р о м а х о м р о з у м і є т ь с я відсутність в кеш пам'яті
375

потрібної інформації, п р и з в е р н е н н і д о о с н о в н о ї пам'яті. Я к щ о п о з н а ч и т и коефіцієнт


попадань через k , а к о е ф і ц і є н т п р о м а х і в через k , то з а л е ж н і с т ь м і ж н и м и
h можна ви­
разити наступною ф о р м у л о ю : k = 1 - k ; m h

• час з в е р н е н н я п р и попаданні - час, необхідний для п о ш у к у потрібної інформації


в кеш пам'яті (включаючи з ' я с у в а н н я , чи є з в е р н е н н я п о п а д а н н я м ) , п л ю с час на ф а к т и ч ­
не з ч и т у в а н н я даних;
• втрати на п р о м а х - час, п о т р і б н и й для з а м і н и блоку в кеш п а м ' я т і на блок з п о ­
трібними д а н и м и , р о з т а ш о в а н и й в о с н о в н і й пам'яті;
• середній час д о с т у п у до о с н о в н о ї пам'яті, я к и й в и з н а ч а є т ь с я з в и р а з у :
t = t + k t , де t - час з в е р н е н н я при п о п а д а н н і , t - в т р а т и на п р о м а х .
av h m p h

Таким ч и н о м , ч и м м е н ш е п р о м а х і в , т и м в и щ а е ф е к т и в н і с т ь в и к о р и с т а н н я кеш
пам'яті. Розглянемо т и п и п р о м а х і в до кеш п а м ' я т і та підходи до з м е н ш е н н я їх кількості
й п о в ' я з а н и х з н и м и втрат. Існує три т и п и п р о м а х і в : о б о в ' я з к о в і , ємнісні та конфліктні.
О б о в ' я з к о в і п р о м а х и - це п р о м а х и , я к і в и н и к а ю т ь п р и п о ч а т к о в о м у з в е р н е н н і до
основної пам'яті. З р о з у м і л о , щ о п е р ш и й д о с т у п д о кеш п а м ' я т і о б о в ' я з к о в о буде п р о м а ­
хом. Для з м е н ш е н н я кількості ц ь о г о т и п у п р о м а х і в п о т р і б н о з б і л ь ш у в а т и р о з м і р блоків
в кеш пам'яті.
Ємнісні п р о м а х и п о в ' я з а н і з о б м е ж е н и м р о з м і р о м кеш пам'яті. Для з м е н ш е н н я кіль­
кості цього т и п у п р о м а х і в п о т р і б н о з б і л ь ш у в а т и р о з м і р кеш пам'яті.
Конфліктні п р о м а х и п о в ' я з а н і з е ф е к т и в н і с т ю а л г о р и т м у з а м і щ е н н я блоків в кеш
пам'яті. Для з м е н ш е н н я кількості ц ь о г о т и п у п р о м а х і в п о т р і б н о з б і л ь ш у в а т и асоціатив­
ність кеш пам'яті, аж до в и к о р и с т а н н я д л я її реалізації п о в н і с т ю асоціативної пам'яті.
На рис. 10.14 наведено з а л е ж н і с т ь в е л и ч и н и к о е ф і ц і є н т а п р о м а х і в від є м н о с т і кеш
пам'яті та від кількості блоків в о д н о м у секторі кеш п а м ' я т і з в и к о р и с т а н н я м ч а с т к о в о -
асоціативного в і д о б р а ж е н н я п р и в и к о н а н н і н а б о р у т е с т о в и х п р о г р а м S P E C 92.
Кількість блоків в секторі
ч а с т к о в о - а с о ц і а т и в н о ї к е ш пам'яті

CO
CO «З CM
Ємність кеш пам'яті (КБ)

Рис. 10.14. Залежність значення коефіцієнта промахів від ємності та від кількості блоків
в одному секторі частково-асоціативної кеш пам'яті

Таким ч и н о м , з б і л ь ш е н н я р о з м і р у блоку кеш п а м ' я т і п о н и ж у є кількість о б о в ' я з к о ­


вих промахів, але з б і л ь ш у є в т р а т и на промах, через з р о с т а н н я часу п е р е с и л а н н я блоку
інформації. Крім того, я к щ о є м н і с т ь кеш п а м ' я т і невелика, то з б і л ь ш е н н я р о з м і р у блоку
збільшує кількість к о н ф л і к т н и х п р о м а х і в через з м е н ш е н н я кількості блоків та секторів.
376

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


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

70.3. Організація обміну інформацією між основною


та зовнішньою пам'яттю

10.3.1. Статичний та динамічний розподіл пам'яті


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

Я к щ о вся необхідна о с н о в н а п а м ' я т ь д л я п р о г р а м п р и з н а ч а є т ь с я д о п о ч а т к у ї х в и ­


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

10.3.2. Розподіл основної пам'яті за допомогою базових адрес


Відповідно д о м е т о д у д и н а м і ч н о г о р о з п о д і л у п а м ' я т і з а д о п о м о г о ю б а з о в и х адрес
кожній п р о г р а м і в и д і л я є т ь с я деяка о б л а с т ь о с н о в н о ї пам'яті, і, крім того, п р о г р а м а п и ­
шеться з в и к о р и с т а н н я м у м о в н и х адрес. Д л я ц ь о г о к о ж н і й п р о г р а м і с т а в и т ь с я у відпо­
відність базова адреса, щ о в с т а н о в л ю є т ь с я о п е р а ц і й н о ю системою. П р и всіх з в е р н е н н я х
до пам'яті б а з о в а адреса додається на с у м а т о р і СМ (рис. 10.15) до у м о в н о ї адреси, в и з н а ­
ченої п р о г р а м о ю , у т в о р ю ю ч и в и к о н а в ч у а д р е с у пам'яті.

З операційної

1 З програми
, , 1 • .
системи
Рг умовної адреси Рг базової адреси

СМ

*
Виконавча адреса

Рис. 10.15. Розподіл пам'яті за допомогою базових адрес

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


в пам'яті і в с т а н о в л ю є в регістрі б а з о в о ї а д р е с и відповідне число ( б а з о в у адресу).
Недоліки р о з п о д і л у пам'яті за д о п о м о г о ю б а з о в и х адрес:
• необхідність р о з м і щ у в а т и п р о г р а м у в п о с л і д о в н и х к о м і р к а х о с н о в н о ї пам'яті,
що п р и з в о д и т ь до н е е ф е к т и в н о г о її в и к о р и с т а н н я ;
• необхідність в в о д и т и п р о г р а м и в о с н о в н у п а м ' я т ь п о в н і с т ю (або ті її ч а с т и н и , в
я к и х в и к о р и с т о в у є т ь с я одна б а з о в а адреса);
378

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


ч а с т и н и ( і н ш и м и с л о в а м и - н а я в н і с т ь в п а м ' я т і дірок).
Як п р и к л а д на рис. 10.16а наведено р о з п о д і л о с н о в н о ї пам'яті між трьома програма­
ми А, В, С в д е я к и й м о м е н т часу. Після з а в е р ш е н н я в и к о н а н н я п р о г р а м и В (рис. Ю.ІбЬ) в
пам'яті в и в і л ь н и л о с я місце, я к е р а з о м з областю п а м ' я т і Б (вільні області В та Б виділені
ш т р и х о в и м и л і н і я м и ) є б і л ь ш и м за р о з м і р о м , ніж п о т р і б н о програмі Е, однак ця про­
грама не м о ж е бути з а п и с а н о ю до о с н о в н о ї пам'яті, оскільки вона є більшою за кожну з
областей В та Е, які р о з м і щ е н і в п а м ' я т і не підряд.

а) Ь)
Рис. 10.16. Області основної пам'яті В та О є дірками, оскільки програма Е
не вставляється на їх місце

Виходом з цієї ситуації є, н а п р и к л а д , п е р е м і щ е н н я п р о г р а м и із області С ближче


до області А, що д о з в о л я є в и в і л ь н и т и місце п р о г р а м і Е, як це п о к а з а н о , наприклад, на
рис. 10.17а.

и
А Е

'ШШШ

шш,
С с

ИИ
а) Ь)
Рис. 10.17. Переміщення програми із області С а) та очікування місця для програми Е Ь)

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


тю р е д а г у в а н н я п р о г р а м и і з а в а н т а ж е н н я її з а н о в о , оскільки з м і н и л и с я адреси.
І н ш и м в а р і а н т о м є ч е к а н н я , доки не з в і л ь н и т ь с я область необхідної ємності, як це
п о к а з а н о на рис. 10.17Ь, коли з а в е р ш и л о с ь в и к о н а н н я п р о г р а м и А і з ' я в и л о с ь достат­
н ь о місця д л я п р о г р а м и Е. Виходить, що п р о г р а м а чекає своєї черги на з а в а н т а ж е н н я до
о с н о в н о ї п а м ' я т і , хоча є д і л я н к и п а м ' я т і в е л и к о г о розміру, але в о н и р о з м і щ е н і в різних
областях о с н о в н о ї пам'яті.
Таким ч и н о м , п р и в и к о р и с т а н н і о п и с а н о г о способу р о з п о д і л у в основній пам'яті за­
в ж д и б у д у т ь н а я в н і дірки, які в сумі м о ж у т ь з а й м а т и значну ч а с т и н у її ємності.
Відмічені недоліки м е т о д у д и н а м і ч н о г о р о з п о д і л у пам'яті за допомогою базових
адрес відсутні в другого м е т о д у д и н а м і ч н о г о р о з п о д і л у пам'яті, а саме в віртуальній
пам'яті з с т о р і н к о в о ю організацією.
379

10.3.3. Віртуальна пам'ять


П р и н ц и п віртуальної пам'яті передбачає, що к о р и с т у в а ч при підготовці п р о г р а м и має
справу не з багаторівневою фізичною о с н о в н о ю п а м ' я т т ю , що є в комп'ютері і м а є фіксо­
вану ємність, а з в і р т у а л ь н о ю (уявною) о д н о р і в н е в о ю п а м ' я т т ю , ємність якої д о р і в н ю є
всьому адресному п р о с т о р у комп'ютера, в и з н а ч е н о м у р о з м і р о м адрес в регістрі адреси.
Користувач р о з п о р я д ж а є т ь с я всім а д р е с н и м п р о с т о р о м к о м п ' ю т е р а , н е з а л е ж н о від
ємності основної п а м ' я т і і вимог до неї з б о к у і н ш и х к о р и с т у в а ч і в . На всіх е т а п а х під­
готовки п р о г р а м а представлена в в і р т у а л ь н и х ( у м о в н и х ) адресах. П р и в и к о н а н н і п р о ­
грами віртуальні адреси п е р е т в о р ю ю т ь с я у фізичні. К о р и с т у в а ч не знає, де з н а х о д и т ь с я
його п р о г р а м а - в основній чи в з о в н і ш н і й п а м ' я т і , і в якій області. Це в с т а н о в л ю є т ь с я
автоматично в ході о б ч и с л ю в а л ь н о г о процесу, т о б т о ш л я х о м д и н а м і ч н о г о р о з п о д і л у
пам'яті. При цьому, оскільки д л я в и к о н а н н я п р о г р а м и необхідно, щ о б т а ч а с т и н а а к т и в ­
ної інформації, на я к у в к а з у ю т ь в і р т у а л ь н і адреси, з н а х о д и л а с ь в о с н о в н і й п а м ' я т і , то в
процесі в и к о н а н н я п р о г р а м и необхідно п е р е т в о р ю в а т и в і р т у а л ь н і адреси в ф і з и ч н і та
переписувати а к т и в н у і н ф о р м а ц і ю д о о с н о в н о ї пам'яті.
За своєю суттю віртуалізація пам'яті - це спосіб реалізації ієрархічної організації
пам'яті на рівні взаємодії о с н о в н о ї та з о в н і ш н ь о ї пам'яті.
Віртуальна організація п а м ' я т і д о з в о л я є з д і й с н ю в а т и к е р у в а н н я п а м ' я т т ю , коли в и ­
конується п а р а л е л ь н о багато п р о г р а м , з з а б е з п е ч е н н я м захисту д а н и х та н а д а н н я м в
р о з п о р я д ж е н н я к о ж н о ї п р о г р а м и всього а д р е с н о г о п р о с т о р у к о м п ' ю т е р а .
П р и віртуальній організації п а м ' я т і адреси, які ф о р м у ю т ь с я п р о ц е с о р о м , є в і р т у а л ь ­
ними. Н е о б х і д н и м а т р и б у т о м в і р т у а л ь н о ї п а м ' я т і є з о в н і ш н я п а м ' я т ь , яка здатна збері­
гати всю п р о г р а м у повністю.
Розглянемо п р и к л а д . Нехай п р о ц е с о р п о с и л а є д о о с н о в н о ї пам'яті в і р т у а л ь н у адресу
520 004 096, п р и ч о м у є м н і с т ь о с н о в н о ї п а м ' я т і рівна 5 1 2 М Б , а є м н і с т ь з о в н і ш н ь о ї п а м ' я т і
рівна 80 ГБ (рис. 10.18).

Адреса
Фізична п а м я т ь
0
Дане

Зовнішня

пам'ять
Віртуальна Фізична
Перетворення Адреса
адреса адреса
віртуальних
адрес 0
у фізичні Основна

пам'ять

Рис. 10.18. Взаємодія процесора з основною пам'яттю при використанні віртуальної пам'яті

В комп'ютерах без з а с т о с у в а н н я в і р т у а л ь н о ї п а м ' я т і в и к о р и с т о в у є т ь с я п р я м а а д р е ­


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

• в і р т у а л ь н а адреса п е р е т в о р ю є т ь с я у фізичну;
• ф і з и ч н а адреса п о д а є т ь с я до ф і з и ч н о ї п а м ' я т і (основної або зовнішньої);
• в ф і з и ч н і й п а м ' я т і з н а х о д и т ь с я відповідна фізичній адресі комірка;
• до цієї к о м і р к и з а п и с у є т ь с я , а б о з неї з ч и т у є т ь с я , дане, причому, я к щ о ця ко­
мірка з н а х о д и т ь с я в з о в н і ш н і й пам'яті, то з в е р н е н н я до неї здійснюється через основну
п а м ' я т ь ш л я х о м п е р е з а п и с у і н ф о р м а ц і ї з з о в н і ш н ь о ї пам'яті до основної.

10.3.4. Сторінкова організація пам'яті

10.3.4.1. Основні правила сторінкової організації пам'яті

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


ментації пам'яті, а крім того д л я п р и с к о р е н н я о б м і н у м і ж о с н о в н о ю та зовнішньою
п а м ' я т т ю та в и р і ш е н н я п и т а н ь з а х и с т у пам'яті, а т а к о ж з метою реалізації п р и н ц и п у
в і р т у а л ь н о ї пам'яті, в и к о р и с т о в у є т ь с я сторінкова організація пам'яті. Основні правила
сторінкової організації п а м ' я т і , які з а б е з п е ч у ю т ь е ф е к т и в н у взаємодію основної та зо­
внішньої пам'яті, є наступними:
• П р о г р а м и п р е д с т а в л я ю т ь в в і р т у а л ь н и х (умовних) адресах віртуальної однорів-
невої пам'яті, є м н і с т ь якої д о р і в н ю є в с ь о м у а д р е с н о м у п р о с т о р у комп'ютера, визначено­
му р о з м і р о м а д р е с в регістрі адреси.
• Віртуальна п а м ' я т ь та ф і з и ч н а (основна та з о в н і ш н я ) п а м ' я т ь р о з б и в а ю т ь с я на
сторінки р і в н о г о об'єму.
С т о р і н к а - це деяка м н о ж и н а п о с л і д о в н о р о з м і щ е н и х комірок пам'яті.
Сторінкам присвоюються номери.
К о ж н а ф і з и ч н а сторінка здатна зберігати вміст однієї віртуальної сторінки.
Н у м е р а ц і я к о м і р о к в о б о х сторінках ( в і р т у а л ь н и х і фізичних) однакова.
Б а з о в о ю п о р ц і є ю інформації, я к а п е р е м і щ у є т ь с я м і ж о с н о в н о ю т а зовнішньою
ам я т т ю , є вміст однієї с т о р і н к и .
І д е н т и ч н і с т ь в м і с т у в і д п о в і д н и х сторінок о с н о в н о ї пам'яті і з о в н і ш н ь о ї пам'яті
з а б е з п е ч у є т ь с я в и к о р и с т а н н я м с п е ц і а л ь н и х методів о н о в л е н н я вмісту сторінок осно­
вної пам'яті.
• З а м і щ е н н я вмісту сторінок в о с н о в н і й п а м ' я т і вмістом сторінок з зовнішньої
п а м ' я т і з д і й с н ю є т ь с я з а п р а в и л а м и , які н а з и в а ю т ь а л г о р и т м о м з а м і щ е н н я .
• Взаємодія м і ж с т о р і н к а м и в і р т у а л ь н о ї і ф і з и ч н о ї п а м ' я т і з а д а є т ь с я сторінковою
таблицею.
• М і ж р і з н и м и п р о ц е с а м и ( п р о г р а м а м и ) р о з п о д і л я є т ь с я фізична (а не віртуальна)
пам'ять.
• О с н о в н а п а м ' я т ь д и н а м і ч н о р о з п о д і л я є т ь с я м і ж р і з н и м и п р о ц е с а м и (програма­
ми) п о с т о р і н к о в о .
П е р е в а г и сторінкової організації пам'яті:
• не в и м а г а ю т ь с я додаткові п е р е м і щ е н н я п р о г р а м в пам'яті, п о в ' я з а н і з потребою
звільнення місця через фрагментацію;
• с к о р о ч у є т ь с я кількість п е р е с и л а н ь м і ж о с н о в н о ю та з о в н і ш н ь о ю п а м ' я т т ю , так
я к вміст с т о р і н к и з а в а н т а ж у є т ь с я л и ш е при необхідності;
38 ї

• з м е н ш у ю т ь с я в и м о г и до є м н о с т і о с н о в н о ї пам'яті, так як до неї з а в а н т а ж у ю т ь с я


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

10.3.4.2. Реалізація сторінкової організації пам'яті

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


трібно розділити в і р т у а л ь н у та ф і з и ч н у п а м ' я т ь на с т о р і н к и р і в н о г о об'єму, п р и с в о ї т и
цим сторінкам н о м е р и , т а в с т а н о в и т и відповідність м і ж ц и м и с т о р і н к а м и , я к ц е д л я
прикладу п о к а з а н о на рис. 10.19, де о б ' є м с т о р і н к и в и б р а н о р і в н и м 4КБ, а відповідні
в і р т у а л ь н и м сторінкам А, В, С, В ф і з и ч н і с т о р і н к и р о з м і щ е н і як в основній, так і в з о ­
внішній пам'яті. П р и ц ь о м у в і д р а з у необхідно з а у в а ж и т и , щ о довільній в і р т у а л ь н і й сто­
рінці м о ж е відповідати довільна ф і з и ч н а сторінка, т о б т о відповідність м і ж с т о р і н к а м и є
повністю асоціативною.
у-бітова віртуальна адреса

, ,. _ в-бітова адреса
к-бітовии номер
. в межах
віртуальної сторінки
г
' г
віртуальної сторінки
Рис. 10.19. Поділ віртуальної та фізичної пам'ятей

Нехай віртуальна п а м ' я т ь м а є є м н і с т ь У = 2 слів, та поділена на 2 в і р т у а л ь н и х сторі­


У к

нок, к о ж н а з я к и х м а є о б ' є м 2 слів, т о б т о р о з р я д н і с т ь в і р т у а л ь н о ї а д р е с и V = к + в, де


%

к - адреса (номер) віртуальної с т о р і н к и , в - н о м е р слова в сторінці. Тоді ф о р м а т вірту­


альної адреси буде мати вид, п р е д с т а в л е н и й на рис. 10.20.
у-бітова віртуальна адреса

, . Б-бітова адреса
к-бітовии номер г

. в межах
віртуальної сторінки
г
' г
віртуальної сторінки
Рис. 10.20. Формат віртуальної адреси

Аналогічно, нехай о с н о в н а п а м ' я т ь м а є є м н і с т ь М = 2 слів, та поділена на 2 в і р т у а л ь ­


т і

них сторінок, к о ж н а з я к и х м а є о б ' є м 2 слів, т о б т о р о з р я д н і с т ь а д р е с и о с н о в н о ї п а м ' я т і


і

т = 1 + Б, де 1 - адреса (номер) с т о р і н к и о с н о в н о ї пам'яті, в - н о м е р слова в сторінці. Тоді


формат адреси основної пам'яті буде мати вид, п р е д с т а в л е н и й на рис. 10.21.
т-бітова адреса основної пам'яті

І-бітовий номер Б-бітова адреса в


сторінки межах сторінки
основної пам'яті основної пам'яті
Рис. 10.21. Формат адреси основної пам'яті
382

П о д і б н и м ч и н о м , н е х а й з о в н і ш н я п а м ' я т ь м а є є м н і с т ь Е = 2 слів, т а поділена н а 2


е Р

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


і

в н о ї п а м ' я т і е = р + в, де р - а д р е с а ( н о м е р ) с т о р і н к и з о в н і ш н ь о ї п а м ' я т і , в - н о м е р слова


в с т о р і н ц і . Тоді ф о р м а т а д р е с и з о в н і ш н ь о ї п а м ' я т і буде м а т и вид, п р е д с т а в л е н и й на
р и с . 10.22.
е-бітова адреса зовнішньої пам'яті

р-бітовий номер s
" ДР
6 i T 0 B a а е с а в

сторінки межах сторінки


зовнішньої пам'яті зовнішньої пам'яті
с)
Рис. 10.22. Формат адреси зовнішньої пам'яті

П о р я д о к п е р е т в о р е н н я адрес (номерів) в і р т у а л ь н и х сторінок у фізичні задається у


вигляді сторінкової таблиці, що вказує відповідність в і р т у а л ь н и х і фізичних сторінок.
Сторінкова т а б л и ц я ф о р м у є т ь с я , і при необхідності змінюється, операційною системою.
П р о ц е д у р а з в е р н е н н я до п а м ' я т і така: н о м е р в і р т у а л ь н о ї сторінки в и б и р а є т ь с я з вір­
т у а л ь н о ї адреси і в и к о р и с т о в у є т ь с я як вхід в сторінкову т а б л и ц ю , яка вказує номер фі­
з и ч н о ї с т о р і н к и (рис. 10.23).

Віртуальна Сторінкова Осшшіїа Зовнішні


нам'ніь габлнци нам'ять нам'ять

10

Рис. 10.23. Процедура звернення до пам'яті

С л о в о сторінкової таблиці складається з трьох о с н о в н и х полів ( п р о допоміжні поля


буде с к а з а н о пізніше):
• п е р ш е поле, я к е з а й м а є о д и н р о з р я д , вказує т и п пам'яті. Коли в ц ь о м у полі запи­
сано 0, це г о в о р и т ь п р о те, що сторінка в і д с у т н я в о с н о в н і й пам'яті. Коли з а п и с а н о 1 - це
г о в о р и т ь п р о те, що сторінка н а я в н а в о с н о в н і й пам'яті. Цей р о з р я д з а з в и ч а й називають
р о з р я д о м н а я в н о с т і ( Р Н , а б о valid bit V ) .
• адреса с т о р і н к и в о с н о в н і й пам'яті (коли РН = 1). Я к щ о сторінка знаходиться в
з о в н і ш н і й п а м ' я т і - це поле ігнорується.
• адреса с т о р і н к и в з о в н і ш н і й пам'яті (коли РН = 0). За цією адресою в и б и р а ю т ь
вміст с т о р і н к и із з о в н і ш н ь о ї п а м ' я т і та з а г р у ж а ю т ь до о с н о в н о ї пам'яті. Крім того, р о ­
б и т ь с я відповідний з а п и с в сторінковій таблиці, а після в и к о р и с т а н н я ця сторінка буде
повернута назад в зовнішню пам'ять.
383

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


рис. 10.24. Тобто н о м е р віртуальної с т о р і н к и за д о п о м о г о ю сторінкової таблиці з а м і н ю ­
ється на н о м е р фізичної сторінки, а н о м е р слова в м е ж а х с т о р і н к и з а л и ш а є т ь с я без змін,
п р и ч о м у з а л е ж н о від з н а ч е н н я р о з р я д у н а я в н о с т і (РН) ф о р м у є т ь с я а б о адреса о с н о в н о ї
пам'яті, або адреса з о в н і ш н ь о ї пам'яті.
Номер пір і \а. іьної
Номер с ІОНИ Вір і \ а. п.па адреса
сторінки

сторінкова
таб. піци

Номер сторінки Номер сторінки


основної нам'яті Номер слова зовнішньої нам'яті Номер слова Фіпічна адреса

Рис. 10.24. Перетворення віртуальної адреси у фізичну

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


грама. Насправді сучасні к о м п ' ю т е р и є б а г а т о п р о г р а м н и м и . В ц ь о м у в и п а д к у п р и сто­
рінковій організації пам'яті к о ж н а п р о г р а м а м а є свою в і р т у а л ь н у п а м ' я т ь з адресацією
від нуля і до м а к с и м а л ь н о ї адреси, я к а допускається р о з р я д н о ю сіткою. Так як н а п и с а н н я
різних п р о г р а м п р о в о д и т ь с я н е з а л е ж н о одна від одної, в о н и м о ж у т ь в и к о н у в а т и с ь в од­
них і тих самих в і р т у а л ь н и х адресах, які п о в и н н і н а л е ж а т и до різних ф і з и ч н и х сторінок.
Отже, сторінкова т а б л и ц я п о в и н н а в р а х о в у в а т и т а к о ж н а л е ж н і с т ь в і р т у а л ь н о ї сторінки
різним програмам. Тобто н о м е р ф і з и ч н о ї сторінки є ф у н к ц і є ю д в о х з м і н н и х - н о м е р а
віртуальної сторінки, та н о м е р а п р о г р а м и , як це п о к а з а н о на рис. 10.25. І н ш и м и слова­
ми, для кожної п р о г р а м и має бути с в о я сторінкова т а б л и ц я .
Віртуальна пам'ять програми І

Сторінкова таблиця
Номер Основна Зовнішня
Тип фізичної
пам'яті пам'ять пам'ять
Віртуальна пам'ять програми сторінки
ОП (1
ОГІ
зп 2
зп 3
ОП 1

ОП 5
Віртуальна пам'ять програми З
7

Рис. 10.25. Процедура звернення до пам'яті в багатопрограмних комп'ютерах

Перетворення віртуальної адреси у фізичну тут здійснюється відповідно до рис. 10.26.


384

Номер Номер віртуальної


Номер слона Віртуальна адреса
програми сторінки

сторінкова
таблиця

Номер сторінки Номер сторінки


оснонїїої нам ч і і Номер слова зовнішньої нам'» і і Номер слова Фізична адреса

Рис. 10.26. Перетворення віртуальної адреси у фізичну в багатопрограмних комп'ютерах

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

Вибір слова з п а м ' я т і п р и с т о р і н к о в і й організації в и м а г а є д в о х ц и к л і в звернення:


спочатку до сторінкової таблиці, а п о т і м до ф і з и ч н о ї а д р е с и пам'яті. Я к щ о сторінкова
т а б л и ц я з б е р і г а є т ь с я в о с н о в н і й п а м ' я т і , це в два р а з и с п о в і л ь н ю є в и б і р к у слова. Тому
часто с т о р і н к о в у т а б л и ц ю з б е р і г а ю т ь в ш в и д к і й п а м ' я т і невеликої ємності. Склад і мож­
л и в о с т і цієї п а м ' я т і з а л е ж а т ь від в и б р а н о г о п р а в и л а п о б у д о в и сторінкової таблиці:
• к о ж н і й в і р т у а л ь н і й с т о р і н ц і відповідає одна стрічка сторінкової таблиці. В стріч­
ці є н о м е р ф і з и ч н о ї с т о р і н к и , я к и й зберігає д а н у в і р т у а л ь н у сторінку;
• к о ж н і й ф і з и ч н і й сторінці відповідає одна стрічка сторінкової таблиці, що збері­
гається в д а н і й фізичній сторінці.
В п е р ш і й с т р у к т у р і входом в с т о р і н к о в у т а б л и ц ю є н о м е р в і р т у а л ь н о ї сторінки і но­
м е р п р о г р а м и , як це п о к а з а н о на р и с рис. 10.26, і в о н а будується як п а м ' я т ь з довільним
д о с т у п о м н а основі м і к р о с х е м н а п і в п р о в і д н и к о в о ї пам'яті.
Кількість п р о г р а м та в і р т у а л ь н и х сторінок м о ж е б у т и д о с и т ь великою. Наприклад,
п р и в и к о р и с т а н н і 3 2 - р о з р я д н о ї а д р е с и та сторінок о б ' є м о м 16КБ, кількість записів в
сторінковій таблиці д л я однієї п р о г р а м и буде рівною 2 / 2 = 2 = 256К. Тоді об'єм сто­
32 14 18

рінкової таблиці буде р і в н и м ( в р а х о в у ю ч и ф о р м а т к о ж н о г о запису) 256К*4Б = 1 МБ, що


складає 64 с т о р і н к и о с н о в н о ї п а м ' я т і , п р и ч о м у і цю ц и ф р у ще п о т р і б н о п о м н о ж и т и на
кількість п р о г р а м . Тобто є м н і с т ь п а м ' я т і сторінкової таблиці такого т и п у т а к о ж буде ве­
л и к о ю , п р и ч о м у ця п а м ' я т ь буде п о в і л ь н о ю . Крім того, в дійсності необхідно зберігати
з н а ч н о м е н ш е записів, так як з а п и с и є м а л о р о з р я д н и м и .
В д е я к и х к о м п ' ю т е р а х в цій п а м ' я т і зберігається л и ш е одна сторінкова таблиця, яка
н а л е ж и т ь а к т и в н і й програмі. Решта с т о р і н к о в и х т а б л и ц ь зберігаються в основній пам'я­
ті. П р и зміні ц и к л у а к т и в н о с т і о п е р а ц і й н а система в і д п р а в л я є в о с н о в н у пам'ять дану
сторінкову т а б л и ц ю і з а в а н т а ж у є нову. Крім того, сторінкова т а б л и ц я т а к о ж може бути
поділена на с т о р і н к и , т о б т о м о ж у т ь б у т и в и к о р и с т а н і багаторівневі сторінкові таблиці,
як це п о к а з а н о на р и с . 10.27.
т

385

Віртуальна адрзса
31 23 31 12 11 О
pi I р2 I Ns слова |

Номер запису Номер запису


вСТ1 вСТ2

Віртуальна адреса

Рг А процесора
Сторінкова таблиця
першого рівня

Сторінкова табпи
Сторінка в основній пам'яті другого рівня
Сторінка в зовнішній пам'яті
У7Л н е використаний з а п и с
Сторінки пам'яті
Рис. 10.27. Використання багаторівневих сторінкових таблиць

Тут спочатку іде з в е р н е н н я до сторінкової таблиці п е р ш о г о р і в н я , а з неї до сторінко­


вої таблиці другого рівня. Як в и д н о з р и с у н к а , взамін однієї сторінкової таблиці о б ' є м о м
2 записів (кількість з а п и с і в рівна кількості сторінок в пам'яті), т у т п о т р і б н а одна сто­
20

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


з такою ж кількістю записів. О д н а к при ц ь о м у додається ще одне з в е р н е н н я до пам'яті.
В другій с т р у к т у р і д о в ж и н а сторінкової таблиці в и з н а ч а є т ь с я л и ш е кількістю фізич­
них сторінок в о с н о в н і й пам'яті і не з а л е ж и т ь від числа ц і л ь о в и х п р о г р а м . Ємність п а м ' я ­
ті зменшується, п р о т е у с к л а д н ю є т ь с я с т р у к т у р а - з а с т о с о в у є т ь с я асоціативна п а м ' я т ь ,
що д о з в о л я є в и б и р а т и дані за їх змістом, а не за м і с ц е з н а х о д ж е н н я м . Але, як було по­
казано вище, кількість ф і з и ч н и х сторінок в сучасних к о м п ' ю т е р а х є д о с и т ь великою,
що р о б и т ь п р о б л е м а т и ч н и м з а с т о с у в а н н я асоціативної сторінкової таблиці. В з в ' я з к у
з цим, в сучасних к о м п ' ю т е р а х п о с т у п а ю т ь н а с т у п н и м ч и н о м : в и д і л я ю т ь сторінковій
таблиці область в основній пам'яті, хоча це п р и в о д и т ь до п о д в о є н н я часу з в е р н е н н я , та
в и к о р и с т о в у ю т ь додаткову кеш п а м ' я т ь , я к у н а з и в а ю т ь б у ф е р о м п е р е т в о р е н н я з перед­
історією (TLB - Translation Look-aside Buffer). В и к о р и с т а н н я T L B д о з в о л я є з м е н ш и т и час
п е р е т в о р е н н я в і р т у а л ь н и х адрес у фізичні. Він будується як кеш п а м ' я т ь та може бути
о р г а н і з о в а н и м за п р и н ц и п о м п р я м о г о , а с о ц і а т и в н о г о та ч а с т к о в о - а с о ц і а т и в н о г о відо­
б р а ж е н н я . П р и к о ж н о м у п е р е т в о р е н н і н о м е р а віртуальної с т о р і н к и в н о м е р фізичної
сторінки результат з а н о с и т ь с я в T L B : н о м е р фізичної сторінки до асоціативного регі­
стра, а номер віртуальної сторінки - до регістрів тегів. Таким ч и н о м , до T L B п о п а д а ю т ь
результати декількох останніх о п е р а ц і й п е р е т в о р е н н я адрес. П р и к о ж н о м у зверненні д о
основної пам'яті спочатку потрібна в і р т у а л ь н а сторінка ш у к а є т ь с я в T L B , і при п о п а д а н ­
ні номер відповідної фізичної с т о р і н к и б е р е т ь с я з ц ь о г о буфера. Я к щ о з а ф і к с о в а н о п р о ­
мах, то п р о ц е д у р а п е р е т в о р е н н я адрес з д і й с н ю є т ь с я за д о п о м о г о ю сторінкової таблиці,
яка зберігається в о с н о в н і й пам'яті, після чого н о м е р в і р т у а л ь н о ї та фізичної сторінок
заноситься д о T L B . С т р у к т у р а T L B , п о б у д о в а н о ї я к повністю асоціативна кеш п а м ' я т ь ,
наведена на рис. 10.28.

25 3 а к . 3 7 1 .
386

Номер Номер віріуа.іьниї Номер


и [к и рамп сторінки с юна

Перевірка Не еггіппало Звернення до


спіппалінпя сторінкової таолит п

он
Помер фінічпої
сторінки

14 РВ РН РМ РД

1
Помер фі нічної
сторінки

Асоціа пінні Допоміжні


регістри розряди

Номер фінічної 1Y адріч;н


Помер стопа
сторінки OH

Рис. 10.28. Структура асоціативної кеш пам'яті буфера перетворення з передісторією

З а з в и ч а й ч и с л о записів (входів) в T L B є н е в е л и к и м (64-256), н а п р и к л а д в комп'ютері


Pentium III є 64 входи, при розмірі сторінки 4 КБ, що д о з в о л я є о т р и м а т и ш в и д к и й до­
ступ до п а м ' я т і ємністю 256 КБ.
С т р у к т у р а T L B , побудованої як ч а с т к о в о - а с о ц і а т и в н а кеш п а м ' я т ь , наведена на
р и с . 10.29.
18 bits 14 bits
Номер Номер
вірт уальної слова
сторінки

Тег Запис IZL"


13bits 5bits

НФС V
Рт Тег НФС

Номер Номер
ф ізичної слова
сторінки
Попадання
Рис. 10.29. Структура частково-асоціативної кеш пам'яті буфера перетворення з передісторією

Крім номерів п р о г р а м и , віртуальної сторінки та фізичної сторінки слово сторінкової


таблиці в к л ю ч а є п ' я т ь ознак: РЗ, РВ, Р Н , РМ, та РД.
Д л я к е р у в а н н я з а н е с е н н я і н ф о р м а ц і ї в асоціативні регістри до 'їх складу вводять до­
даткові р о з р я д и : р о з р я д з а й н я т о с т і (РЗ) і р о з р я д в и к о р и с т а н н я (РВ).
387

Ознака Р З ( р о з р я д з а й н я т о с т і ) потрібна д л я реалізації стратегії з а м і щ е н н я вмісту


асоціативних регістрів. РЗ в с т а н о в л ю є т ь с я в 1 п р и записі і н ф о р м а ц і ї в асоціативні регі­
стри. РЗ г о в о р и т ь п р о те, в і л ь н и й чи з а й н я т и й д а н и й а с о ц і а т и в н и й регістр.
Так як з а з в и ч а й всі асоціативні регістри з а й н я т і і н ф о р м а ц і є ю , то для з а п и с у нової
необхідно з в і л ь н и т и я к и й с ь асоціативний регістр. З в і л ь н я є т ь с я той регістр, і н ф о р м а ц і я
в я к о м у не в и к о р и с т о в у в а л а с ь Для фіксації з в е р н е н ь до даної в і р т у а л ь н о ї с т о р і н к и в и ­
користовується о з н а к а РВ ( р о з р я д в и к о р и с т а н н я ) , я к и й в с т а н о в л ю є т ь с я в 1 п р и з в е р т а н ­
ні до віртуальної сторінки. Я к щ о всі РЗ = 1, то нова і н ф о р м а ц і я з а с и л а є т ь с я в регістр, в
якому РВ = 0. Я к щ о всі РВ = 1, то в о н и а в т о м а т и ч н о с к и д а ю т ь с я
О з н а к а РН ( р о з р я д наявності) в с т а н о в л ю є т ь с я в о д и н и ц ю , я к щ о в і р т у а л ь н а сторін­
ка в даний м о м е н т знаходиться в о с н о в н і й пам'яті. В ц ь о м у в и п а д к у в а с о ц і а т и в н о м у
регістрі знаходиться н о м е р фізичної сторінки. Я к щ о РН = 0, то п р и с п р о б і з в е р н е н н я
до даної віртуальної сторінки о п е р а ц і й н а система з а в а н т а ж у є с т о р і н к у з з о в н і ш н ь о ї
пам'яті до основної. П р и ц ь о м у в а с о ц і а т и в н о м у регістрі н а я в н а і н ф о р м а ц і я п р о місце
р о з м і щ е н н я сторінки в з о в н і ш н і й пам'яті. З а в а н т а ж е н н я с т о р і н к и з з о в н і ш н ь о ї пам'яті
супроводжується з а п и с о м до відповідного а с о ц і а т и в н о г о регістра н о м е р а ф і з и ч н о ї сто­
рінки, до якої буде з а п и с а н а віртуальна сторінка
Сторінка в ОП м о ж е змінюватись. Тому, я к щ о вона не з м і н и л а с я , н е м а є необхідності
її переписувати в З П , так як там вже є копія. Я к щ о ж з м і н и л а с я , п о т р і б н о п е р е п и с а т и .
Для фіксації змін в сторінках ОП в в о д и т ь с я в сторінкову т а б л и ц ю р о з р я д модифікації
РМ, я к и й д о з в о л я є с у т т є в о з е к о н о м и т и час о б м і н у
Ознака прав доступу ОД вказує вид доступу до сторінки: запис, ч и т а н н я чи дозволені
або заборонені обидві операції, і п р и з н а ч е н и й для в и р і ш е н н я п и т а н ь захисту інформації
Потрібно відзначити, що при сторінковій організації п а м ' я т і в и н и к а ю т ь ті ж пробле­
ми з з а м і щ е н н я м сторінок в основній пам'яті, як це було для кеш пам'яті. З а з в и ч а й в ОП
немає вільних сторінок і при з а в а н т а ж е н н і нової і н ф о р м а ц і ї я к у с ь с т о р і н к у д о в о д и т ь с я
видаляти з О П . Необхідний а л г о р и т м в и з н а ч е н н я с т о р і н к и , що підлягає з н и щ е н н ю . Тут
використовуються ті ж самі методи з а м і щ е н н я сторінок, що і в кеш пам'яті: L R U - з н и ­
щення сторінки з м а к с и м а л ь н и м п р о с т о є м , L F U - з н и щ е н н я сторінки з м і н і м а л ь н о ю
частотою звернення, FIFO - з н и щ е н н я сторінки згідно з чергою поступлення, R A N D - зни­
щення сторінки випадковим чином При цьому потрібно відзначити, що плата за промах
(коли вміст потрібної сторінки відсутній в основній пам'яті) є досить великою (десятки мілі-
секунд), оскшьки потрібно робити звернення до повільної зовнішньої пам'яті
В а ж л и в и м п и т а н н я м сторінкової організації п а м ' я т і є в и б і р об е м у сторінки. На ко­
ристь малого о б ' є м у с т о р і н к и г о в о р я т ь такі аргументи:
• з м е н ш у ю т ь с я в т р а т и через ф р а г м е н т а ц і ю за рахунок н е п о в н о г о в и к о р и с т а н н я
об'єму виділеної сторінки п р о г р а м о ю ;
• зменшується об'єм пересилань.
Н а користь великого о б ' є м у г о в о р я т ь н а с т у п н і а р г у м е н т и :
• з м е н ш у ю т ь с я затрати на сторінкову т а б л и ц ю ;
• з м е н ш у є т ь с я час підготовчих о п е р а ц і й в З П .
Зазвичай в и б и р а ю т ь о б ' є м сторінки в діапазоні 8КБ - 32КБ
Таким ч и н о м в и к о р и с т а н н я сторінкової організація пам^яті дає н а с т у п н і переваги:
• Віртуальна п а м ' я т ь п р е д с т а в л я є т ь с я д л я п р о г р а м і с т а як пам^ять одного рівня,
що спрощує п р о г р а м у в а н н я .
388

* Об єм в і р т у а л ь н о ї п а м яті в и з н а ч а є т ь с я д о в ж и н о ю адресного поля і може набага­


то перевищувати ємність основної пам'яті.
• В и к л ю ч а ю т ь с я п р о т и р і ч ч я , п о в ' я з а н і з р о з п о д і л о м основної пам'яті між систем­
н и м и і п р и к л а д н и м и п р о г р а м а м и Н е м а є о б м е ж е н н я на кількість п р о г р а м .
• Виключається фрагментація основної пам'яті.
• П р и м у л ь т и п р о г р а м у в а н н і не потрібне послідовне р о з т а ш у в а н н я сторінок однієї
програми в основній пам'яті.
• Не п о т р і б н о п е р е м і щ е н н я інформації, як це є при розподілі з допомогою базових
регістрів.
• В о с н о в н у п а м ' я т ь з а г р у ж а ю т ь с я а к т и в н і с т о р і н к и за п о т р е б о ю , неактивні сто­
рінки залишаються в зовнішній пам'яті.
Р а з о м з т и м , в и к о р и с т а н н я сторінкової організації п а м яті в и м а г а є додаткових апа­
р а т н и х т а п р о г р а м н и х засобів, т а у с к л а д н ю є р о б о т у комп'ютера.

10.3.5. Сегментна організація віртуальної пам'яті


З а з в и ч а й п р о г р а м а с к л а д а є т ь с я з декількох частин, р о з м і р и я к и х наперед невідомі та
м о ж у т ь з м і н ю в а т и с ь в процесі в и к о н а н н я п р о г р а м и . Для к о ж н о ї з ц и х частин повинна
б у т и відведена область в п р о с т о р і в і р т у а л ь н и х адрес, оскільки к о р и с т у в а т и с я віртуаль­
н о ю п а м я т т ю з н е п е р е р в н о ю н у м е р а ц і є ю байтів всіх частин не з а в ж д и зручно. Більш
з р у ч н о , коли к о ж н а ч а с т и н а м а є свою н у м е р а ц і ю байтів п о ч и н а ю ч и з нуля. Бажано та­
кож, щ о б складена т а к и м ч и н о м п р о г р а м а могла п р а ц ю в а т и при д и н а м і ч н о м у розподілі
п а м яті, не в и м а г а ю ч и від п р о г р а м і с т а зусиль по об є д н а н н ю різних її частин в єдиний
м а с и в . Це з а в д а н н я р о з в ' я з у є т ь с я в багатьох к о м п ' ю т е р а х ш л я х о м в и к о р и с т а н н я осо­
б л и в о г о м е т о д у п е р е т в о р е н н я в і р т у а л ь н и х адрес в фізичні та н а з и в а є т ь с я сегментною
організацією пам'яті.
П р и н ц и п и сегментної організації пам'яті є н а с т у п н и м и :
• в і р т у а л ь н а п а м ' я т ь к о ж н о ї п р о г р а м и ділиться на ч а с т и н и , що називаються сег­
ментами-
• всередині сегменту а д р е с а ц і я байтів є н е з а л е ж н о ю , п о ч и н а ю ч и від нуля до яко­
гось м а к с и м а л ь н о г о з н а ч е н н я ;
• різні сегменти м о ж у т ь мати різну д о в ж и н у ;
• д о в ж и н а сегмента м о ж е з м і н ю в а т и с ь в процесі р о б о т и ;
• так як к о ж н и й сегмент з а й м а є н е з а л е ж н и й а д р е с н и й п р о с т і р , сегменти можуть
р о с т и і с к о р о ч у в а т и с я н е з а л е ж н о один від о д н о г о .
Як п р и к л а д на рис. 10.30 наведено сегменти пам яті деякої п р о г р а м и .

0
Таблиця
Таблиця констант
4К 4К
символів Граматичне
Таблиця дерево
ек виханого 8К 8К
тексту

12К 12К

Рис. 10.30. Сегменти пам'яті із чотирьох таблиць

Щ о б в и к о н а т и з в е р н е н н я до такої сегментованої, або д в о в и м і р н о ї пам'яті, програма


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

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


номера сторінки, я к і в и з н а ч а ю т ь н о м е р сегмента.
Крім с п р о щ е н н я о б р о б к и з м і н н и х з а о б ' є м о м с т р у к т у р даних, с е г м е н т о в а н а п а м ' я т ь
значно с п р о щ у є з в ' я з о к п р о ц е д у р , к о м п і л я ц і я я к и х в и к о н а н а о к р е м о . Я к щ о п р о ц е д у р а в
деякому сегменті з а з н а л а змін і п о в т о р н о ї компіляції, то р е ш т а п р о ц е д у р з м і н ю в а т и не
потрібно. Сегментація с п р о щ у є і спільне в и к о р и с т а н н я д а н и х л о к а л ь н и м и п р о ц е с а м и .
Так як з точки зору програміста сегменти є самостійними логічними об'єктами, припус­
тимо застосування для них різних видів захисту: дозволяється лише читання, запис і т. п.
Таким ч и н о м в и н и к а є певна ієрархія в організації п р о г р а м , яка складається з ч о т и ­
рьох ярусів: програма, сегмент, сторінка, слово. Цій ієрархії п р о г р а м відповідає й ієрар­
хія таблиць п е р е т в о р е н н я в і р т у а л ь н и х адрес у фізичні, як це п о к а з а н о на рис. 10.31.
Програмна таблиця

Номер програми Почато» сегментної


таблиці

Сегментна таблиця

Початок стос'нювс» П о ч а т о к с т о р і н ковоі


Номер сегмента Номер сегмента
таблиці! таблиці
Сегментна таблиця

П о ч а т о ї СТООІНХОЕЮ:
Номер сегмента
таблиці

С т о р і н к о » таблиця Сторінкова таблиця

Н о м е р віртуальної Н о м е р фізичної Н о м е р віртуальної Н о м е р фізичної Н о м е р віртуальної Номер фізичної


сторінки сторінки сторінки сторінки сторінці

Основна там ять

Рис. 10.31. Ієрархія таблиць перетворення віртуальних адресу фізичні

П р о г р а м н а т а б л и ц я включає всі з а в а н т а ж е н і в к о м п ' ю т е р п р о г р а м и . К о ж н і й програ­


мі відповідає своя сегментна т а б л и ц я . С е г м е н т н а т а б л и ц я в к л ю ч а є сегменти даної п р о ­
грами. К о ж н о м у сегменту відповідає своя с т о р і н к о в а т а б л и ц я . С т о р і н к о в а т а б л и ц я в и ­
значає фізичне р о з т а ш у в а н н я к о ж н о ї с т о р і н к и в п а м ' я т і (основній і з о в н і ш н і й ) .
Хоча в логічному відношенні сегментна і с т о р і н к о в а організація п а м ' я т і тісно п о в ' я ­
зані між собою та подібні в реалізації, цілі їх з а с т о с у в а н н я різні. П о р і в н я н н я сегментної
і сторінкової організації пам'яті н а в е д е н о в табл. 10.1.
390

Таблиця 10.1
Сторінкова
Характеристика Сегментна організація пам'яті
п/п організація пам'яті
Чи повинен програміст знати, який вид
1. ні так
організації пам'яті використовується?
2. Скільки є лінійних адресних просторів? 1 багато
Чи може адресний простір
3. так так
перевищувати ємність пам'яті?
Чи можуть бути розпізнані та окремо
4. ні так
захищені процедури і дані?
Чи можна розміщувати таблиці
5. ні так
змінного об'єму?
Чи можливе спільне застосування так
6. ні
процедур декількома користувачами?
Для отримання можливості
Для отримання
розміщувати програми і дані в
великого адресного
Для чого була розроблена дана логічно незв'язаних адресних
7. простору без необ­
організація пам'яті? просторах і для полегшення су­
хідності збільшен­ місного використання і захисту
ня фізичної пам'яті інформації

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


т а н н і сегментної та сторінкової організації п а м ' я т і ілюструє рис. 10.32.

Віртуальна адреса

Номер сегмента

Фізична адреса Н о м е р сторінки Номер слова

Рис. 10.32. Перетворення віртуальної адреси у фізичну адресу при використанні сегментної
та сторінкової організації пам'яті

Як в и д н о з р и с у н к а , д л я в и к о н а н н я п е р е т в о р е н н я необхідно два додаткових звернен­


ня до пам'яті. Для с к о р о ч е н н я кількості з в е р н е н ь д л я п о б у д о в и сегментної таблиці може
б у т и з а с т о с о в а н а , як і при сторінковій організації пам'яті, асоціативна пам'ять.
391

Ї0.4. Захист пам'яті від несанкціонованих звернень

10.4.1. Задачі захисту пам'яті


Сучасні к о м п ' ю т е р и , як п р а в и л о , о д н о ч а с н о в и к о н у ю т ь багато з а в д а н ь для багатьох
користувачів, коли в основній пам'яті о д н о ч а с н о з н а х о д я т ь с я п р о г р а м и , що н а л е ж а т ь як
до різних користувачів, так і до р і з н и х з а в д а н ь одного к о р и с т у в а ч а . Крім того, в о с н о в н і й
пам'яті з а в ж д и п р и с у т н і ф р а г м е н т и о п е р а ц і й н о ї системи. К о ж н о м у з а в д а н н ю в основній
пам'яті виділяється свій адресний простір. Такі простори, я к щ о це спеціально не передбаче­
но, зазвичай є незалежними. В той же час в програмах м о ж у т ь міститися помилки, що може
призвести до вторгнення в адресний простір інших завдань. В результаті м о ж е бути спо­
творена і н ф о р м а ц і я , що н а л е ж и т ь і н ш и м п р о г р а м а м . О т ж е , у к о м п ' ю т е р і о б о в ' я з к о в о
повинні бити передбачені заходи запобігання несанкціонованій дії програми одного корис­
тувача на р о б о т у програм інших користувачів і на операційну систему. Особливо небезпечні
наслідки таких помилок при порушенні адресного простору операційної системи.
Щоб п е р е ш к о д и т и р у й н у в а н н ю о д н и х п р о г р а м і н ш и м и , д о с и т ь з а х и с т и т и область
пам'яті даної п р о г р а м и від с п р о б з а п и с у в неї з б о к у і н ш и х п р о г р а м (захист від запису).
У ряді випадків необхідно мати м о ж л и в і с т ь з а х и с т у і від ч и т а н н я з б о к у і н ш и х п р о г р а м ,
н а п р и к л а д при о б м е ж е н н я х на д о с т у п до системної і н ф о р м а ц і ї .
Захист від в т о р г н е н н я п р о г р а м в ч у ж і адресні п р о с т о р и р е а л і з у є т ь с я цілим р я д о м
способів, які п о є д н у ю т ь п р о г р а м н і та апаратні з а с о б и , що к е р у ю т ь с я о п е р а ц і й н о ю сис­
темою. Розглянемо н и ж ч е н а й у ж и в а н і ш і с п о с о б и з а х и с т у пам'яті.

10.4.2. Захист пам'яті за допомогою регістра захисту


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

Регістр
Пам'ять
захисту

Рис. 10.33. Захист пам'яті з допомогою регістра захисту

Коли р о з р я д захисту р і в н и й 1, то з а п и с до п а м ' я т і з а б о р о н е н о . М о ж е бути декілька


розрядів, які в к а з у ю т ь р е ж и м и р о б о т и .
392

Реалізувати цей спосіб м о ж н а т а к о ж ш л я х о м в и д і л е н н я в к о ж н і й комірці пам'яті спе­


ц і а л ь н о г о р о з р я д у з а х и с т у і п і д ' є д н а н н я його до п р и с т р о ю к е р у в а н н я з а п и с о м в пам'ять.
В с т а н о в л е н н я ц ь о г о р о з р я д у в 1 блокує з а п и с в д а н у комірку. Подібний спосіб викорис­
т о в у в а в с я в о б ч и с л ю в а л ь н и х м а ш и н а х попередніх поколінь. З о к р е м а він був застосова­
н и й в системі Atlas.

10.4.3. Захист пам'яті за граничними адресами


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

Верхня адреса

РгА Компаратор Пам'ять

Нижня адреса Переривання

Рис. 10.34. Захист пам'яті за граничними адресами

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


м о ю . Ц е й с п о с і б в и м а г а є з а й м а н н я к о м і р о к п а м ' я т і п і д р я д . З а с т о с о в а н и й в системі
Stretch і ІВМ7090.

10.4.4. Захист пам'яті за значеннями ключів


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

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


Ключі захисту п а м ' я т і зберігаються в спеціальній пам'яті. П р и к о ж н о м у з в е р н е н н і до
основної п а м ' я т і схема п о р і в н я н н я п р о в о д и т ь п о р і в н я н н я ключів з а х и с т у п а м ' я т і і п р о ­
грами. При збігу д о с т у п до п а м ' я т і д о з в о л е н о . Дії у разі н е с п і в п а д і н н я ключів з а л е ж а т ь
від того, я к и й в и д д о с т у п у з а б о р о н е н и й : п р и записі, при ч и т а н н і або в о б о х випадках.
Я к щ о з ' я с у в а л о с я , що д а н и й в и д д о с т у п у з а б о р о н е н и й , то так само як і в методі г р а н и ч ­
них адрес ф о р м у є т ь с я з а п и т п е р е р и в а н н я і н а з и в а є т ь с я відповідна п р о ц е д у р а о п е р а ц і й ­
ної системи.
О п и с а н и й спосіб є більш г н у ч к и м п о р і в н я н о з попереднім, так як д о з в о л я є з в е р т а ­
тися до областей пам'яті, р о з м і щ е н и х не підряд. Він був з а с т о с о в а н и й в системі I B M 360.
Схема захисту п а м ' я т і за о п и с а н и м с п о с о б о м в системі I B M 360 наведена на рис. 10.35.

п о м е р и.шк'а Р і А

ПКЗ

• Розря.і
Рі КЗ режиму Ті РЗ
захисту
Ключ
захисту
зд
Схема
пам'яті порівняння
— - II
Ключ сигнал
програми переривання
ПКЗ - пам'ять ключів захисту
РЗ - режим звернення
ЗД - звернення дозволено

Рис. 10.35. Захист пам'яті за значеннями ключів

В цій системі п а м ' я т ь с к л а д а є т ь с я з блоків. К о ж н и й блок м а є код - ключ з а х и с т у


пам'яті (КЗП). К о ж н а п р о г р а м а т е ж м а є код - ключ п р о г р а м и (КП). Ключі з а х и с т у п а м ' я ­
ті зберігаються в п а м ' я т і ключів з а х и с т у ( П К З ) . Крім того, є іще т р и г е р р е ж и м у з а х и с т у
(ТгРЗ), в я к о м у зберігається р о з р я д р е ж и м у з а х и с т у ( Р Р З ) . Д о с т у п д о з в о л е н и й , я к щ о
КЗП = КП. Коли К З П = К П , а Р Р З = 0, то д о з в о л е н о л и ш е з ч и т у в а н н я . Коли ж К З П = К П ,
а Р Р З = 1, то д о с т у п до пам'яті з а б о р о н е н и й . О б ' є м блоку р і в н и й 2048 байт. О д н о ч а с н о
о б р о б л я є т ь с я 16 п р о г р а м і, відповідно, в и к о р и с т о в у є т ь с я 16 варіантів К З П і К П , т о б т о
коди є 4-розрядни.ми. КП в к а з у є т ь с я в с п е ц і а л ь н о м у полі слова с т а н у п р о г р а м и ( С С П )
або каналу (ССК). Коди КП і К З П в с т а н о в л ю є о п е р а ц і й н а система.

10.4.5. Кільцева схема захисту пам'яті


Захист адресного п р о с т о р у о п е р а ц і й н о ї системи від н е с а н к ц і о н о в а н о г о в т о р г н е н н я
з боку п р и з н а ч е н и х для к о р и с т у в а ч а п р о г р а м з а з в и ч а й о р г а н і з о в у ю т ь ш л я х о м н а д а н н я
системного і п р и з н а ч е н о г о д л я к о р и с т у в а ч а рівнів привілеїв. Таку с т р у к т у р у п р и й н я ­
то називати к і л ь ц е в о ю системою захисту. На рис. 10.36 ця система з о б р а ж е н а у вигляді
к о н ц е н т р и ч н и х кіл, д е п р и з н а ч е н и й для к о р и с т у в а ч а р е ж и м п р е д с т а в л е н и й з о в н і ш н і м
кільцем, а с и с т е м н и й - в н у т р і ш н і м колом. У с и с т е м н о м у р е ж и м і програмі д о с т у п н і всі
394

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


жені. П е р е м и к а н н я з п р и з н а ч е н о г о для користувача р е ж и м у в системний здійснюється
спеціальною к о м а н д о ю . Вперше о п и с а н и й підхід був з а с т о с о в а н и й в системі M U L T I C S на
комп'ютері GE 645, де крім ключів захисту використовувалась кільцева схема захисту з 32 рів­
н я м и привілеїв. У більшості сучасних комп'ютерів число рівнів привілеїв (кілець захисту)
невелике, з о к р е м а в п р о ц е с о р а х фірми Intel передбачено ч о т и р и рівні привілеїв.
Ядро операційної системи

Рис. 10.36. Кільцева схема захисту

В ядрі о п е р а ц і й н о ї системи з н а х о д я т ь с я п р о г р а м и ініціалізації к о м п ' ю т е р а та керу­


в а н н я д о с т у п о м до пам'яті. С е г м е н т и в в н у т р і ш н і х к і л ь ц я х більш захищені, ніж в зо­
внішніх. Рівні з а х и с т у привілеїв з а д а ю т ь с я д в о м а бітами у відповідних регістрах.

10.5. Короткий зміст розділу


В розділі п р о в е д е н о аналіз х а р а к т е р и с т и к та о с о б л и в о с т е й а п а р а т н и х та програм­
н и х засобів сучасного к о м п ' ю т е р а , що д о з в о л и л о в и д і л и т и наступні їх фундаментальні
в л а с т и в о с т і , які п о з и т и в н о д о п о в н ю ю т ь одна одну з точки з о р у в и р і ш е н н я задачі забез­
п е ч е н н я необхідної є м н о с т і і високої швидкодії п а м ' я т і за п р и й н я т н у ціну:
• ч и м м е н ш и й час д о с т у п у до п а м ' я т і , т и м м е н ш а її ємність та в и щ а вартість збері­
г а н н я в ній одного біта і н ф о р м а ц і ї ;
• ч и м більша є м н і с т ь п а м ' я т і , т и м б і л ь ш и й час д о с т у п у до неї та н и ж ч а вартість
з б е р і г а н н я в ній одного біта інформації;
• існує значна р і з н и ц я м і ж п р о д у к т и в н і с т ю п р о ц е с о р а і основної пам'яті, а також
м і ж п р о д у к т и в н і с т ю о с н о в н о ї т а з о в н і ш н ь о ї пам'яті;
• к о м п ' ю т е р н і п р о г р а м и володіють в л а с т и в і с т ю л о к а л ь н о с т і за з в е р н е н н я м до
пам'яті.
Ці в л а с т и в о с т і є п і д ґ р у н т я м д о ц і л ь н о с т і в и к о р и с т а н н я при побудові системи пам'яті
підходу, відомого як п р и н ц и п ієрархічної організації пам'яті.
Відповідно до ц ь о г о п р и н ц и п у п а м ' я т ь к о м п ' ю т е р а складається із п р и с т р о ї в пам'яті
різних типів, які, з а л е ж н о від х а р а к т е р и с т и к , н а л е ж а т ь до певного рівня ієрархії. Пам'ять
н и ж ч о г о р і в н я м а є м е н ш у ємність, ш в и д ш а і м а є велику вартість в перерахунку на біт,
ніж п а м ' я т ь в и щ о г о рівня. Рівні ієрархії в з а є м о з в ' я з а н і : всі дані на деякому н и ж ч о м у рівні
м о ж у т ь бути т а к о ж знайдені на в и щ о м у рівні, і всі дані на ц ь о м у в и щ о м у рівні можуть
бути знайдені на н а с т у п н о м у в и щ о м у рівні і т. д. З р у х о м вверх по ієрархічній структурі
з м е н ш у є т ь с я с п і в в і д н о ш е н н я вартість/біт, з р о с т а є ємність та час доступу. Однак завдяки
властивості локальності за з в е р н е н н я м з р у х о м вверх по ієрархічній структурі зменшу-
395

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


ної вартості при з а д а н о м у рівні п р о д у к т и в н о с т і . На к о ж н о м у рівні ієрархії п а м ' я т ь р о з ­
бивається на блоки, які є н а й м е н ш о ю і н ф о р м а ц і й н о ю о д и н и ц е ю , що пересилається м і ж
двома сусідніми р і в н я м и ієрархії. Розмір блоків м о ж е бути ф і к с о в а н и м або з м і н н и м . П р и
фіксованому розмірі блоку ємність пам'яті з а з в и ч а й кратна його розміру. Розмір блоків
на к о ж н о м у рівні ієрархії найчастіше різний і з б і л ь ш у є т ь с я від н и ж ч и х рівнів до в и щ и х .
Виходячи з п р и н ц и п у ієрархічної організації п а м ' я т і в розділі о п и с а н о організацію
взаємодії м і ж р і в н я м и ієрархічної пам'яті. З о к р е м а , н а в е д е н о п р и н ц и п и о б м і н у і н ф о р ­
мацією м і ж р і в н я м и ієрархічної п а м ' я т і , х а р а к т е р и с т и к и , які в и к о р и с т о в у ю т ь с я для
оцінки е ф е к т и в н о с т і ієрархічної пам'яті, п о я с н е н о місце кеш п а м ' я т і в складі к о м п ' ю т е ­
ра, п р и з н а ч е н н я і логіку р о б о т и кеш пам'яті, о п и с а н а вигода від поділу кеш п а м ' я т і пер­
шого рівня на кеш п а м ' я т ь д а н и х та кеш п а м ' я т ь к о м а н д . О б ґ р у н т о в а н а р і з н о м а н і т н і с т ь
методів в і д о б р а ж е н н я о с н о в н о ї п а м ' я т і на кеш п а м ' я т ь , п о к а з а н о , я к и м и м е т о д а м и за­
безпечується узгодженість вмісту о с н о в н о ї і кеш п а м ' я т і , та ч и м о б у м о в л е н е в в е д е н н я
додаткових рівнів кеш пам'яті, і які ч и н н и к и в п л и в а ю т ь на в и б і р є м н о с т і кеш п а м ' я т і та
р о з м і р у блоку.
Введено п о н я т т я с т а т и ч н о г о та д и н а м і ч н о г о р о з п о д і л у п а м ' я т і та п о н я т т я в і р т у а л ь н о ї
пам'яті т а сторінкової організації пам'яті. О п и с а н і а л г о р и т м и з а м і щ е н н я , які в и к о р и с ­
товуються при з а в а н т а ж е н н і в о с н о в н у п а м ' я т ь вмісту з о в н і ш н ь о ї п а м ' я т і , п р и з н а ч е н н я
буфера ш в и д к о г о п е р е т в о р е н н я адреси (TLB). Н а в е д е н а сегментна о р г а н і з а ц і я пам'яті.
Розглянуті п и т а н н я з а х и с т у пам'яті.

10.6. Література для подальшого читання


О б ґ р у н т у в а н н я п о т р е б и в ієрархії п а м ' я т і і сам термін, а т а к о ж п р и н ц и п и к е р у в а н н я
двома р і в н я м и пам'яті в п е р ш е з а п р о п о н о в а н о в р о б о т і [17]. Віртуальна п а м ' я т ь була ре­
алізована в к о м п ' ю т е р а х системи I B M 370, в якій в п е р ш е був в и к о р и с т а н и й б у ф е р ш в и д ­
кого п е р е т в о р е н н я адреси, і н ф о р м а ц і ю п р о що м о ж н а з н а й т и в р о б о т і [6].
П и т а н н я побудови кеш пам'яті, організацію взаємодії м і ж р і в н я м и ієрархічної п а м ' я ­
ті, п р и н ц и п и о б м і н у і н ф о р м а ц і є ю між р і в н я м и ієрархічної пам'яті, х а р а к т е р и с т и к и , які
в и к о р и с т о в у ю т ь с я для о ц і н к и е ф е к т и в н о с т і ієрархічної пам'яті, р і з н о м а н і т н і с т ь методів
в і д о б р а ж е н н я основної п а м ' я т і на кеш п а м ' я т ь , м е т о д и з а б е з п е ч е н н я у з г о д ж е н о с т і вміс­
ту основної і кеш пам'яті, та я к і ч и н н и к и в п л и в а ю т ь на в и б і р є м н о с т і кеш п а м ' я т і і р о з ­
мір блоку, р о з г л я н у т і в р о б о т а х [1-5,7,11-16,18-34].
П и т а н н я сторінкової організації п а м ' я т і , з о к р е м а як це було з р о б л е н о в системі Ат­
лас, та захисту в ній і н ф о р м а ц і ї на п р и к л а д і систем I B M 360, Intel 80286 та Multics описа­
ні в р о б о т а х [10, 35-37].

10.7. Література до розділу 10


1. AGARWAL, А. [1987]. Analysis of Cache Performance for Operating Systems and Multiprogramming,
Ph.D. Thesis, Stanford Univ., Tech. Rep. No. CSL-TR-87-332 (May).
2. AGARWAL, A. A N D S. D. P U D A R [1993J. "Column-associative caches: A technique for reducing the
miss rate of direct-mapped caches," 20th Annual Int'l Symposium on Computer Architecture ISCA '20,
San Diego, Calif, May 16-19. Computer Architecture News 21:2 (May), 179-90.
396

3. B A E R , J.-L. A N D W . - H . W A N G f 1988]. "On the inclusion property for multi-level cache hierarchi-
es", Proc. 15th Annual Symposium on Computer Architecture (May-June), Honolulu, 73-80.
4. B H A N D A R K A R , D. P. [1995], Alpha Architecture Implementations, Digital Press, Newton, Mass.
5. BORG, A., R. E. KESSLER, A N D D. W. W A L L [1990]. "Generation and analysis of very long add-
ress traces", Proc. 17th Annual Int'l Symposium on Computer Architecture (Cat. No. 90CH2887-8), Seattle,
May 28-31, IEEE Computer Society Press, Los Alamitos, Calif, 270-9.
6. CASE, R. P. A N D A. PADEGS [1978]. "The architecture of the I B M System/370", Communications
of the ACM 21:1, 73-96. Also appears in D. P. Siewjorek, C. G. Bell, and A. Newell, Computer Structures:
Principles and Examples (1982), McGraw-Hill, New York, 830-855.
7. C L A R K , D. W . [1983]. "Cache performance of the VAX-W780", ACM Trans, on Computer Systems
1:1,24-37.
8. C O N T I , C , D. H . GIBSON, A N D S. H . P1TKOWSKY [1968J. "Structural aspects of the Sys-
tem/360 Model 85, Part I: General organization", IBM Systems }. 7:1, 2-14.
9. C R A W F O R D , J. H. A N D P. P. GELSINGER [1987]. Programming the 80386, Sybex, Alameda,
Calif.
10. FABRY, R. S. [1974]. "Capability based addressing", Comm. ACM 17:7 (July), 403-412.
11. FARKAS, K. I. A N D N. P. JOUPPI [1994]. "Complexity/performance tradeoffs with non-bloc-
king loads", Proc. 21st Annual Int'l Symposium on Computer Architecture, Chicago (April).
12. G A O , Q. S. [1993]. "The Chinese remainder theorem and the prime memory system", 20th Annual
Int'l Symposium on Computer Architecture ISCA '20, San Diego, May 16-19, 1993. Computer Architect-
ure News 21;:2 (May), 337—40.
13. G E E , J. D., M . D. H I L L , D. N P N E V M A T I K A T O S , A N D A. J. S M I T H [1993]. "Cache performance of the
SPEC92 benchmark suite", IEEE Micro 13:4 (August), 17-27.
14. HILL, M . D. [1987]. Aspects of Cache Memory and Instruction Buffer Performance, Ph.D. Thesis,
University of Calif, at Berkeley, Computer Science Division, Tech. Rep. UCB/CSD 87/381 (November).
15. H I L L , M . D. [1988]. "A case for direct mapped caches", Computer 21:12 (December), 25-40.
16. JOUPPI, N. P. [1990]. "Improving direct-mapped cache performance by the addition of a small
fully-associative cache and prefetch buffers", Proc. 17th Annual Int'l Symposium on Computer Architecture
(Cat. No. 90CH2887-8), Seattle, May 28-31, 1990. IEEE Computer Society Press, Los Alamitos, Calif,
364-73.
17. K I L B U R N , T., D. B. G . E D W A R D S , M . J. L A N I G A N , A N D F. H . S U M N E R [1962], "One-level storage
system", IRE Trans, on Electronic Computers EC-11 (April) 223-235. Also appears in D. P. Siewiorek,
C. G. Bell, and A. Newell, Computer Structures: Principles and Examples (1982), McGraw-Hill, New York,
135-148.
18. KROFT, D. [1981]. "Lockup-free instruction fetch/prefetch cache organization", Proc. Eighth Ann-
ual Symposium on Computer Architecture (May 12-14), Minneapolis, 81-87.
19. L A M , M . S., E . E. R O T H B E R G , A N D M . E . W O L F [1991]. "The cache performance and optimizatio-
ns of blocked algorithms", Fourth Int'l Conf. on Architectural Support for Programming Languages and
Operating Systems, Santa Clara, Calif, April 8-11. SIGPLAN Notices 26:4 (April), 63-74.
20. L E B E C K , A. R . A N D D . A . W O O D [1994]. "Cache profiling and the SPEC benchmarks: A case
study", Computer 27:10 (October), 15-26.
21. LIPTAY, J. S. [1968]. "Structural aspects of the System/360 Model 85, Part II: The cache", IBM
Systems }. 7:1, 15-21.
22. M C F A R L I N G , S. [1989]. "Program optimization for instruction caches", Proc. Third Int'l Conf. on
Architectural Support for Programming Languages and Operating Systems (April 3-6), Boston, 183-191.
23. MOWRY, T. C, S. L A M , A N D A . G U P T A [1992]. "Design and evaluation of a compiler algorithm
for prefetching", Fifth Int'l Conf. on Architectural Support for Programming Languages and Operating
Systems (ASPLOS-V), Boston, October 12-15 , SIGPLAN Notices 27:9 (September), 62-73.
397

24. P A L A C H A R L A , S. A N D R. E. K E S S L E R [1994]. "Evaluating stream buffers as a secondary cache


replacement" Proc. 21st Annual Int'l Symposium on Computer Architecture, Chicago, April 18-21, IEEE
Computer Society Press, Los Alamitos, Calif., 24-33.
25. PRZYBYLSKI, S. A. [1990]. Cache Design: A Performance-Directed Approach, Morgan Kauf-
mann Publishers, San Mateo, Calif.
26. PRZYBYLSKI, S. A., M . HOROWITZ, A N D J. L. HENNESSY [1988], "Performance tradeoffs in
cache design", Proc. 15th Annual Symposium on Computer Architecture (May-June), Honolulu, 290-298.
27. S A A V E D R A - B A R R E R A , R. H . [1992]. CPU Performance Evaluation and Execution Time Prediction
Using Narrow Spectrum Benchmarking, Ph.D. Dissertation, University of Calif, Berkeley (May).
28. SAMPLES, A. D. A N D P. N . HILFINGER [1988]. "Code reorganization for instruction caches",
Tech. Rep. UCB/CSD 88/447 (October), University of Calif, Berkeley.
29. SITES, R. L. (ED.) [1992]. Alpha Architecture Reference Manual, Digital Press, Burlington, Mass.
30. SMITH, A. J. [1982]. "Cache memories", Computing Surveys 14:3 (September), 473-530.
31. SMITH, J. E. A N D J. R. G O O D M A N [1983]. "A study of instruction cache organizations and replace­
ment policies", Proc. 10th Annual Symposium on Computer Architecture (June 5-7), Stockholm, 132-137.
32. STRECKER, W. D. [1976]. "Cache memories for the PDP-11?," Proc. Third Annual Symposium
on Computer Architecture (January), Pittsburgh, 155-158.
33. TORRELLAS, J., A. G U P T A , A N D J. HENNESSY [1992], "Characterizing the caching and synchro­
nization performance of a multiprocessor operating system", Fifth Int'l Conf. on Architectural Support
for Programming Languages and Operating Systems (ASPLOS-V), Boston, October 12-15, SIGPLAN
Notices 27:9 (September), 162-74.
34. W A N G , W . - H . , J.-L. BAER, A N D H . M . L E V Y [1989]. "Organization and performance of a two-
level virtual-real cache hierarchy", Proc. 16th Annual Symposium on Computer Architecture (May 28-June
1), Jerusalem, 140-148.
35. WILKES, M . [1965]. "Slave memories and dynamic storage allocation", IEEE Trans. Electronic
Computers EC-14:2 (April), 270-271.
36. W I L K E S , M . V. [1982]. "Hardware support for memory protection: Capability implementati­
ons", Proc. Symposium on Architectural Support for Programming Languages and Operating Sys­
tems (March 1-3), Palo Alto, Calif, 107-116.
37. W U L F , W . A., R. L E V I N , A N D S. P. HARBISON [1981], Hydra/C.mmp: An Experimental Compu­
ter System, McGraw-Hill, New York.

10.8. Питання до розділу 10


1. Чим пояснюється різниця між продуктивністю процесора та пам'яті?
2. Що показує аналіз зміни з роками швидкодії статичної і динамічної напівпровідникової та
дискової пам'яті і процесора?
3. Як зростає з роками розрив між швидкодією процесора і динамічної пам'яті? На що це
впливає?
4. Як зростає з роками розрив між швидкодією динамічної і дискової пам'яті? На що це впли­
ває?
5. Чим викликана необхідність побудови системи пам'яті за ієрархічним принципом?
6. Що включає поняття «локальність за зверненням»?
7. Що таке просторова локальність?
8. Що таке часова локальність?
9. Які висновки витікають з властивості локальності?
10. Наведіть принцип ієрархічної організації пам'яті
11. Завдяки чому середній час доступу в ієрархічній системі пам яті визначається більш
швидкодіючими видами пам'яті?
398

12. Що в ієрархічній системі пам'яті визначають терміни «промах» і «попадання»?


13. На які питання необхідно відповісти, щоб охарактеризувати певний рівень ієрархічної
пам яті?
14. Наведіть принципи обміну інформацією між рівнями ієрархічної пам'яті.
15. Які характеристики використовуються для оцінки ефективності ієрархічної пам'яті?
16. Поясніть місце кеш пам'яті в складі комп'ютера,
17. Поясніть призначення і логіку роботи кеш пам'яті.
18. В чому вигода від поділу кеш пам'яті першого рівня на кеш пам'ять даних та кеш пам'ять
команд?
19. Які проблеми породжує включення кеш пам'яті в ієрархію пам'яті?
20. Чим обумовлена різноманітність методів відображення основної пам'яті на кеш пам'ять?
21. Якій вимозі повинен відповідати «ідеальний» алгоритм заміщення вмісту кеш пам'яті?
22. Якими методами забезпечується узгодженість вмісту основної і кеш пам'яті?
23. Чим обумовлене введення додаткових рівнів кеш пам'яті?
24. Які чинники впливають на вибір ємності кеш пам'яті та розміру блоку?
25. Як співвідносяться характеристики звичайної і дискової кеш пам'яті?
26. Якими засобами забезпечується віртуалізація пам яті?
27. Чи існує обмеження на розмір віртуального простору?
28. Що визначає об'єм сторінкової таблиці?
29. Якими прийомами досягають скорочення об'єму сторінкових таблиць?
30. Які алгоритми заміщення використовуються при завантаженні в основну пам ять нової
віртуальної сторінки?
31. Поясніть призначення буфера швидкого перетворення адреси (ТЬВ).
32. Чим мотивується розбиття віртуальних секторів на сторінки?
33. Яка частина віртуальної адреси залишається незмінною при його перетворенні у фізичну
адресу?
34. Наведіть способи апаратної реалізації сторінкової таблиці.
35. Наведіть алгоритми заміщення сторінок в основній пам'яті.
36. Для чого призначена сегментна організація пам'яті?
37. Дайте порівняння сторінкової та сегментної організації пам'яті.
38. Наведіть ієрархію таблиць перетворення віртуальних адрес у фізичні.
39. Чим обумовлена необхідність захисту пам яті?
40. Назвіть способи захисту пам'яті.
41. Поясніть спосіб захисту пам'яті за допомогою ключів захисту.
Р о з д і л 11

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


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

Т 7.7. Під'єднаний зовнішніх пристроїв до комп'ютера


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

До числа п р и с т р о ї в в в е д е н н я н а л е ж а т ь наступні:
• Клавіатура.
• О п т и ч н і пристрої, з о к р е м а з ч и т у в а ч і п е р ф о к а р т , п а п е р о в и х стрічок та штрихо­
в и х кодів, ц и ф р о в а відеокамера, о п т и ч н и й п р и с т р і й з ч и т у в а н н я міток.
• Магнітні пристрої, н а п р и к л а д , п р и с т р і й для з ч и т у в а н н я коду, нанесеного в ви­
гляді м а г н і т н и х стрічок.
• Е к р а н н і п р и с т р о ї , до числа я к и х в х о д я т ь сенсорні е к р а н и , світлове перо, мишка.
• Ш и р о к и й с п е к т р а н а л о г о в и х п р и с т р о ї в з ц и ф р о в и м виходом.
Д о числа п р и с т р о ї в в и в е д е н н я н а л е ж а т ь наступні:
• Електронно-променева трубка.
• Р і д к о к р и с т а л і ч н и й дисплей.
• П р и н т е р (ударного типу, с т р у м е н е в и й , л а з е р н и й , т о ч к о в о - м а т р и ч н и й ) .
• Графопобудовувач.
• П е р ф о р а т о р и карт та стрічок.
• Ш и р о к и й с п е к т р а н а л о г о в и х п р и с т р о ї в з ц и ф р о в и м входом.
• Звукові пристрої.
П р и с т р о ї в в е д е н н я - в и в е д е н н я та з ' є д н а н і з н и м и в н у т р і ш н і п р и с т р о ї комп'ютера,
крім вузлів п р я м о г о ф у н к ц і о н а л ь н о г о п р и з н а ч е н н я , містять елементи, які переміщують
і н ф о р м а ц і ю м і ж н и м и та п р о ц е с о р о м і о с н о в н о ю п а м ' я т т ю . До ц и х елементів належать:
• Блоки, призначені для зберігання інформації, яка підлягає введенню-виведенню.
• Ш и н и , по я к и х з д і й с н ю є т ь с я о б м і н і н ф о р м а ц і є ю м і ж п р о ц е с о р о м та пам'яттю
комп'ютера і керуючими вузлами зовнішніх пристроїв.
• Керуючі вузли в н у т р і ш н і х та п е р и ф е р і й н и х п р и с т р о ї в (контролери введення-ви­
ведення).
• П р и с т р о ї з в ' я з к у ( і н т е р ф е й с н і схеми, які далі с к о р о ч е н о будемо називати інтер­
ф е й с а м и ) з о в н і ш н і х п р и с т р о ї в , які з а б е з п е ч у ю т ь з в ' я з о к м і ж з о в н і ш н і м и і внутрішніми
п р и с т р о я м и к о м п ' ю т е р а в і д п о в і д н о д о п р о т о к о л і в обміну.

Шина
С и с т е м н і плата
Процесор пам'яті Основна
пам'ять

Рис. 11.1. Варіант під'єднання зовнішніх пристроїв до комп'ютера


407

Рис. 11.1 показує, як всі ці к о м п о н е н т и м о ж у т ь б у т и з'єднані м і ж собою, щ о б с ф о р ­


мувати о б ' є д н а н у підсистему в в е д е н н я - в и в е д е н н я . К о н т р о л е р и в в е д е н н я - в и в е д е н н я
призначені для п е р е м і щ е н н я д а н и х між о с н о в н о ю п а м я т т ю та і н т е р ф е й с о м відповідно­
го п р и с т р о ю . І н т е р ф е й с и п р о е к т у ю т ь с я с п е ц і а л ь н о під к о н к р е т н и й п р и с т р і й в в е д е н н я -
виведення, щоб з в ' я з а т и с я з п е в н и м и в и д а м и п р и с т р о ї в , як н а п р и к л а д к л а в і а т у р о ю , дис­
ками або п р и н т е р а м и . І н т е р ф е й с и п о в і д о м л я ю т ь к о н т р о л е р и п р о готовність з о в н і ш н і х
пристроїв д о п р и й м а н н я н а с т у п н о ї партії даних, або, п о в і д о м л я ю т ь з о в н і ш н і пристрої,
що в н у т р і ш н і п р и с т р о ї к о м п ' ю т е р а готові о д е р ж а т и від них н а с т у п н у партію д а н и х .
П о р я д о к о б м і н у і н ф о р м а ц і є ю м і ж передавачем і п р и й м а ч е м з а д а є т ь с я в п р о т о к о л і
обміну. П р о т о к о л и в к а з у ю т ь п о р я д о к п о с т у п л е н н я сигналів к е р у в а н н я , я к н а п р и к л а д ,
с к и д а н н я п р и н т е р а сигналів статусу, як н а п р и к л а д готовність п р и н т е р а , або сигналів
передачі даних, як н а п р и к л а д "тут є б а й т и , які ви з а п р о с и л и . "
В комп'ютерах в и к о р и с т о в у ю т ь с я два п р и н ц и п и передачі і н ф о р м а ц і ї - с и н х р о н н и й
і а с и н х р о н н и й . П р и с и н х р о н н о м у п р и н ц и п і передавач і н ф о р м а ц і ї у т р и м у є на с в о є м у
виході і н ф о р м а ц і ю д е я к и й наперед в и з н а ч е н и й час, достатній д л я її ф і к с у в а н н я в п р и ­
ймачі. П р и а с и н х р о н н о м у п р и н ц и п і п р и й м а ч о т р и м а в ш и і н ф о р м а ц і ю п о в і д о м л я є п р о
це приймача, я к и й л и ш е після ц ь о г о м о ж е з м і н и т и і н ф о р м а ц і ю на с в о є м у виході. Тому
існують два методи передачі даних. П е р ш и й п е р е д б а ч а є передачу р а з о м з д а н и м т а к т о в о ­
го сигналу, п р и з н а ч е н о г о для ф і к с у в а н н я даного. Цей в и д п р о т о к о л і в о б м і н у н а з и в а ю т ь
п р о т о к о л а м и з с т р о б у в а н н я м . У більшості п р о т о к о л і в о б м і н у в и к о р и с т о в у є т ь с я д р у г и й
метод, згідно з я к и м п р и й м а ч п о в и н е н п і д т в е р д и т и о т р и м а н н я в і д п р а в л е н и х й о м у ко­
м а н д і даних, або вказати, що готовий о д е р ж а т и дані. Цей в и д п р о т о к о л і в обміну н а з и в а ­
ють п р о т о к о л а м и з к в і т у в а н н я м .
Зовнішні пристрої, які оперують великими блоками даних, як наприклад, принтери
і драйвери магнітних дисків і стрічок часто обладнуються буферною пам'яттю. Буферна
пам'ять дозволяє операційній системі комп'ютера відправляти або приймати великі об'єми
даних до/від зовнішніх пристроїв найшвидше. Додаткова спеціалізована пам ять на дисках є
зазвичай різновидністю кеш пам'яті, тоді як принтери обладнуються повільнішою пам'яттю
з довільною вибіркою. Пристрої керування здійснюють керування відповідним зовнішнім
пристроєм та зчитують дані з буферної пам'яті і вказують місце їх поступлення.
Магнітні диски та стрічки н а л е ж а т ь до типів пам'яті, п р и з н а ч е н и х для т р и в а л о г о збе­
рігання інформації. П р о т е , з р о з у м і л о , що і для н и х існує відповідний термін з б е р і г а н н я .
Він с т а н о в и т ь п р и б л и з н о п ' я т ь років для м а г н і т н и х п р и с т р о ї в пам'яті та до 100 р о к і в для
оптичних пристроїв пам'яті.
Інтерфейси в в е д е н н я - в и в е д е н н я з а б е з п е ч у ю т ь у з г о д ж е н н я передачі і н ф о р м а ц і ї м і ж
внутрішніми (як н а п р и к л а д п а м ' я т ь і регістри п р о ц е с о р а ) та з о в н і ш н і м и п р и с т р о я м и
введення-виведення. З о в н і ш н і п р и с т р о ї часто є е л е к т р о м е х а н і ч н и м и , тоді як п р о ц е с о р і
пам я т ь - електронні пристрої. Тому ш в и д к і с т ь передачі д а н и х від з о в н і ш н і х п р и с т р о ї в
є зазвичай, п о в і л ь н і ш о ю .

11.2. Розпізнавання пристроїв введення-виведення


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

26 3аи" 371.
402

На рис. 11.2 для п р и с т р о ї в в в е д е н н я - в и в е д е н н я виділена о к р е м а ш и н а введення-ви-


в е д е н н я , яка з ' є д н у є їх з п р о ц е с о р о м .

Шина пам'яті Шина введення-виведення


Дані
Процесор Адреси
Команди

|інтерс іейс 11 Інтерфейс J І Інтерфейс"! І Інтерфейс І

Клавіатура Магнітний Магнітна


Принтер
та дисплей диск стрічка

Рис. 11.2. Використання шини введення-виведення

В ц ь о м у в и п а д к у п р о ц е с о р з в е р т а є т ь с я до п р и с т р о ю в в е д е н н я - в и в е д е н н я за його но­
м е р о м і н е з а л е ж н о від пам'яті. Н а п р и к л а д , він м о ж е в к а з у в а т и тип операції введення-
виведення та номер пристрою введення-виведення.
На рис. 11.1 н а в е д е н о варіант взаємодії в н у т р і ш н і х та з о в н і ш н і х пристроїв комп'юте­
ра з в и к о р и с т а н н я м двох о к р е м и х ш и н - ш и н и пам'яті та ш и н и введення-виведення.
М о ж л и в е в и к о р и с т а н н я о б ' є д н а н о ї ш и н и пам'яті т а в в е д е н н я - в и в е д е н н я . Я к щ о вико­
р и с т о в у є т ь с я спільна ш и н а для о с н о в н о ї пам'яті та п р и с т р о ї в в в е д е н н я - в и в е д е н н я , то
м о ж е бути в и к о р и с т а н а спеціальна лінія активації, по якій в и б и р а є т ь с я для взаємодії з
п р о ц е с о р о м або п а м ' я т ь , а б о п р и с т р і й в в е д е н н я - в и в е д е н н я (рис. 11.3).

Шина введення-виведення Дані


Процесор Адреси
Команди

І Інтерс іейіс 11 І н т е р ф е й с І І і н т е р ф е й с 11 Інтерфейс І

Лінія
активації
Клавіатура Магнітний Магнітна Основна
Принтер
та дисплей диск стрічка пам'ять

Рис. 11.3. Використання спільної шини

Коли на лінії а к т и в а ц і ї "0" - п р о в о д и т ь с я обмін п р о ц е с о р а з о с н о в н о ю пам'яттю,


коли " 1 " - з п р и с т р о я м и в в е д е н н я - в и в е д е н н я .
В ц ь о м у в и п а д к у о б ' є д н а н а ш и н а р о з п о д і л я є т ь с я в часі між п а м ' я т т ю та п р и с т р о я м и
в в е д е н н я - в и в е д е н н я . Хоча п р и т а к о м у підході п р о д у к т и в н і с т ь комп'ютера дещо нижча,
ніж п р и в и к о р и с т а н н і д в о х о к р е м и х ш и н , він часто з а с т о с о в у є т ь с я з а в д я к и т а к и м пере­
вагам як п р о с т о т а організації взаємодії п р и с т р о ї в та н а р о щ у в а н н я їх кількості. Прикла­
дом о б ' є д н а н и х ш и н є ш и н и V M E bus, Multibus II, Nubus.
І н ш и й спосіб організації взаємодії п р о ц е с о р а з п а м ' я т т ю та п р и с т р о я м и введення-
в и в е д е н н я - це в к л ю ч е н н я номерів п р и с т р о ї в в в е д е н н я - в и в е д е н н я в адресний простір
пам'яті. Це так з в а н е скрите п а м ' я т т ю в в е д е н н я - в и в е д е н н я . Тут не потрібна лінія акти-
403

вації. З в ' я з о к п р о ц е с о р а з п р и с т р о я м и в в е д е н н я - в и в е д е н н я з д і й с н ю є т ь с я так само, як з


комірками пам'яті. Цей спосіб в и к о р и с т о в у є т ь с я частіше за інші.
Для взаємодії з п р о ц е с о р о м п р и с т р о ї в в е д е н н я - в и в е д е н н я м а ю т ь спеціальні вузли
(рис. 11.4), які н а з и в а ю т ь і н т е р ф е й с а м и або і н т е р ф е й с н и м и схемами.
Лінії' адрес

Ліни даних

Ліни керування

Регістри даних
Дешифратор адрес
і станів

Пристрій керування

Інтерфейси і
схеми

Пристрій
введення-виведення

Рис. 11.4. Інтерфейсні схеми пристроїв введення-виведення

Кожен пристрій в в е д е н н я та в и в е д е н н я м а є і н т е р ф е й с н у схему (рис. 11.1), яка в и к о ­


нує наступні функції:
• декодує адресу п р и с т р о ю ( н о м е р п р и с т р о ю ) , я к и й п о с т у п а є з п р о ц е с о р а ;
• декодує к о м а н д и (визначає п о т р і б н у дію);
• забезпечує взаємодію з к о н т р о л е р о м п р и с т р о ю в в е д е н н я - в и в е д е н н я ;
• синхронізує потік д а н и х і к о н т р о л ю є ш в и д к і с т ь передачі д а н и х м і ж п р и с т р о є м
введення-виведення і п р о ц е с о р о м або п а м ' я т т ю .

1 1.3. Методи керування введенням-виведенням


В комп'ютерах в и к о р и с т о в у ю т ь ч о т и р и з а г а л ь н и х м е т о д и к е р у в а н н я в в е д е н н я м - в и ­
веденням. Це наступні методи:
• п р о г р а м н о кероване в в е д е н н я - в и в е д е н н я ,
• кероване п е р е р и в а н н я м и в в е д е н н я - в и в е д е н н я ( в в е д е н н я - в и в е д е н н я за п е р е р и ­
ваннями),
• п р я м и й д о с т у п до пам'яті,
• в в е д е н н я - в и в е д е н н я під к е р у в а н н я м п е р и ф е р і й н и х п р о ц е с о р і в (каналів).
Тип методу керування введенням-виведенням суттєво в п л и в а є на структуру та про­
дуктивність комп'ютера. Тому потрібно знати, в я к о м у випадку доцільно використовувати
конкретний метод введення-виведення в деякому комп'ютері, та як він використовується.

11.4. Програмно-кероване введення-виведення


В комп'ютерах, що в и к о р и с т о в у ю т ь п р о г р а м н о - к е р о в а н е в в е д е н н я - в и в е д е н н я , в ін-
герфейсній схемі к о ж н о г о п р и с т р о ю в в е д е н н я - в и в е д е н н я н а я в н и й регістр к о м а н д і ста­
нів РКС (рис. 11.5). В ц ь о м у регістрі є р о з р я д п р а п о р ц я Е я к и й при п о т р е б і о б м і н у з б о к у
пристрою в в е д е н н я - в и в е д е н н я в с т а н о в л ю є т ь с я в "1".
404

Шина введення
Шина даних Інтерфейс -виведення
Шина адрес І Регістр даних | Наявність даних Пристрій
Процесор Читання даних введення-
V
Запис даних Дані прийнято виведення
РКС

Рис. 11.5. Взаємодія між процесором і пристроями введення-виведення

П р о ц е с о р б е з у п и н н о о п и т у є регістр к о м а н д і станів к о ж н о г о п р и с т р о ю введення-ви­


ведення, чекаючи на н а д х о д ж е н н я даних (рис. 11.6). Тому п р о г р а м н о - к е р о в а н е введен­
н я - в и в е д е н н я іноді н а з и в а ю т ь в в е д е н н я м - в и в е д е н н я м за з а п и т а м и . Як тільки процесор
в и я в л я є умову г о т о в н о с т і даних, він діє згідно з в к а з і в к а м и к о м а н д з п р о г р а м и відповід­
ного п р и с т р о ю в в е д е н н я - в и в е д е н н я .

Читання регістра стану


та перевірка біта
прапорця Р

Читання регістра даних


та передача д а н и х до пам'яті

Ні ^ ^ " " и п е р а ц і я ^ ^
"^іавершенаЗ^^

Ттак
Продовження виконання
програми

Рис. 11.6. Опитування пристрою введення-виведення та виконання операції введення даних

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


н и й к о н т р о л ь над поведінкою к о ж н о г о п р и с т р о ю . П о с т і й н и й о п и т регістра, проте, є про­
блемою. П р о ц е с о р з н а х о д и т ь с я в б е з п е р е р в н і й петлі "активного очікування", поки він
п о ч н е о б с л у г о в у в а т и з а п и т в в е д е н н я в и в е д е н н я . Він не в и к о н у є інших ф у н к ц і й , поки є
п р о ц е с в в е д е н н я в и в е д е н н я . Тобто п р о д у к т и в н і с т ь п р о ц е с о р а з н и ж у є т ь с я аж до рівня
п р о д у к т и в н о с т і п р и с т р о ї в в в е д е н н я в и в е д е н н я . Внаслідок ц и х о б м е ж е н ь , програмно-
к е р о в а н е в в е д е н н я в и в е д е н н я н а й к р а щ е підходить для спеціальних систем, де вимоги
до продуктивності процесора невисокі.
Розглянемо програмно кероване введення виведення на прикладі відеотерміналу в
складі клавіатури і дисплею. Швидкість передачі даних від клавіатури в комп ютер визна­
чається в основному швидкістю р о б о т и оператора, яка рівна декільком символам за секунду.
Швидкість передачі даних з комп'ютера на відеотермінал значно вища. Вона визначається
швидкістю передачі даних по шині, і типово знаходиться біля показника 1000 символів за
секунду. Але це значно менше, ніж може забезпечити процесор (мільярди операцій за секун­
ду). Проблема узгодження швидкостей вирішується наступним чином. Процесор посилає
перший символ, чекає на підтвердження відображення символу на дисплеї, посилає другий
символ і т. д. При взаємодії з клавіатурою процесор чекає сигнал, який свідчить про те, що
клавіша натиснута і м о ж н а виконувати ввід коду символу.
405

О д и н з варіантів з ' є д н а н н я п р о ц е с о р а і в і д е о т е р м і н а л у п о к а з а н и й на рис. 11.7.


Шина

I
Процесор

РгД РгД

Р РКС р РКС

Клавіатура Дисплей

Рис. 11.7. Підключення відеотерміналу до процесора

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


Процесор постійно п е р е в і р я є вміст п р а п о р ц я Б регістра Р К С , аж п о к и він не в с т а н о в и т ь ­
ся в о д и н и ц ю , після чого в і д б у в а є т ь с я п е р е с и л а н н я д а н о г о з регістра д а н и х РгД в один з
регістрів процесора, н о м е р я к о г о в к а з у є т ь с я в команді.
Аналогічно при п е р е с и л а н н і д а н и х на д и с п л е й п р о ц е с о р п о с т і й н о п е р е в і р я є вміст
прапорця Б регістра РКС, аж п о к и він не в с т а н о в и т ь с я в о д и н и ц ю , після чого відбуваєть­
ся п е р е с и л а н н я даного з одного з регістрів п р о ц е с о р а , н о м е р я к о г о вказується в команді,
до регістра даних РгД.

11.5. Система переривання програм та організація введення-


виведення за перериваннями

11.5.1. Функції системи переривання програм


Роботу к о м п ' ю т е р а м о ж н а п р е д с т а в и т и я к послідовність подій: в и к о н а н н я о п е р а ц і й ,
запити на в в е д е н н я - в и в е д е н н я , зміна станів з о в н і ш н і х о б ' є к т і в , я к и м и керує к о м п ' ю т е р ,
і т. д. Частина ц и х подій є п р о г р а м н о в и з н а ч е н о ю , т о б т о п е р е д б а ч е н о ю в програмі, інша
частина подій є п р о г р а м н о н е з а л е ж н о ю , т о б т о м о м е н т и в и н и к н е н н я подій наперед не­
відомі. До п р о г р а м н о н е з а л е ж н и х належать:
• з у п и н е н н я в и к о н а н н я п р о г р а м и , п о в ' я з а н е з п е р е в и щ е н н я м виділеного часу д л я
її виконання;
• з а п и т и оператора, я к и й в и р і ш и в внести зміни до п р о г р а м и під час її в и к о н а н н я ;
• з а п и т и п е р и ф е р і й н и х п р и с т р о ї в за п р и ч и н и з а в е р ш е н н я о п е р а ц і й в в е д е н н я - в и ­
ведення або п о т р е б и п р о в е д е н н я д о д а т к о в и х о п е р а ц і й по їх о б с л у г о в у в а н н ю ;
• п е р е п о в н е н н я р о з р я д н о ї сітки;
• ділення на нуль;
• вихід за дозволені г р а н и ц і пам'яті і т. д.
Останні три названі в и щ е та подібні події, які і н і ц і й о в а н і а п а р а т н и м и з а с о б а м и та
фіксуються програмою, в и д і л я ю т ь в о к р е м и й клас подій з в а ж а ю ч и на їх в а ж л и в і с т ь та
те, що вони не є п е р е д б а ч у в а н и м и . Н а п р и к л а д , в б а г а т о п р о г р а м н и х к о м п ' ю т е р н и х сис-
406

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


т а к и х подій з м е т о ю захисту однієї п р о г р а м и від модифікації іншою. П р о г р а м и взаємо­
діють з о п е р а ц і й н о ю системою к о м п ' ю т е р а через ці події.
К о м п ' ю т е р реагує на п р о г р а м н о визначені події відповідно до вказівок програми.
Для реакції на п р о г р а м н о н е з а л е ж н і події в к о м п ' ю т е р введено спеціальні апаратно-про­
грамні з а с о б и , які дістали назву системи п е р е р и в а н н я п р о г р а м ( С П П ) . Ці засоби є не­
в і д ' є м н о ю ч а с т и н о ю сучасних к о м п ' ю т е р і в . Без н и х п о я в а будь-якої п р о г р а м н о незалеж­
ної події приведе до необхідності п о в т о р н о г о з а п у с к у п р о г р а м и .
П е р е р и в а н н я п р о г р а м - це в л а с т и в і с т ь к о м п ' ю т е р а т и м ч а с о в о переривати виконан­
ня п о т о ч н о ї п р о г р а м и на час в и к о н а н н я д е я к и х подій і передавати керування програмі,
я к а с п е ц і а л ь н о передбачена для даної події.
С и г н а л и , які с п о в і щ а ю т ь п р о п о я в у п р о г р а м н о н е з а л е ж н и х подій, н а з и в а ю т ь запи­
тами переривання.
П р о г р а м и , на в и к о н а н н я я к и х є з а п и т и , н а з и в а ю т ь п е р е р и в а л ь н и м и програмами,
т о б т о т а к и м и , що п е р е р и в а ю т ь інші п р о г р а м и . А п р о г р а м и , які в и к о н у в а л и с ь до появи
з а п и т і в , н а з и в а ю т ь п е р е р и в а н и м и п р о г р а м а м и , т о б т о т а к и м и , щ о перериваються.
Ч а с о в а діаграма п р о ц е с у п е р е р и в а н н я наведена на рис. 11.8.

виконується призупинена виконується


Переривана програма

Запити переривання

Переривальна програма виконується


і 1

— t P —— t3 Івпп — їв

Рис. 11.8. Часова діаграма процесу переривання

Тут tp - час реакції системи п е р е р и в а н н я на з а п и т п е р е р и в а н н я ; t3 - час запам'ято­


в у в а н н я с т а н у п е р е р и в а н о ї п р о г р а м и , tenn - час в и к о н а н н я п е р е р и в а л ь н о ї програми,
tB - час в и х о д у з п е р е р и в а л ь н о ї п р о г р а м и та п о в е р н е н н я до п е р е р и в а н о ї програми (від­
н о в л е н н я ї ї стану).

11.5.2. Характеристики системи переривання програм


Д о о с н о в н и х х а р а к т е р и с т и к системи п е р е р и в а н н я п р о г р а м н а л е ж а т ь наступні:
• час реакції t p , я к и й п о к а з у є як ш в и д к о система реагує на з а п и т переривання;
• час о б с л у г о в у в а н н я п е р е р и в а н н я - затрати часу на вхід в п е р е р и в а л ь н у програ­
му та вихід з п е р е р и в а л ь н о ї п р о г р а м и to = із + t B ;
• глибина п е р е р и в а н н я - м а к с и м а л ь н е ч и с л о п р о г р а м , які м о ж у т ь переривати
одна одну;
• кількість входів п р и й м а н н я п е р е р и в а н ь .
На рис. 11.9 п о к а з а н о п е р е р и в а н н я двох п р о г р а м з а п и т а м и , п р и ч о м у перша програ­
ма м а є г л и б и н у п е р е р и в а н н я 2, а друга - 3.
407

Запити переривання

Глибина переривання 2

Глибина переривання З

Рис. 11.9. Переривання програм запитами

В п е р ш о м у випадку, коли п о с т у п и в з а п и т п е р е р и в а н н я 2, в и к о н а н н я п е р ш о ї п р о ­
грами п е р е р и в а є т ь с я і в и к о н у є т ь с я друга п р о г р а м а , я к а в и к о н у є т ь с я до з а в е р ш е н н я не
дивлячись на те, що під час її в и к о н а н н я п о с т у п и в з а п и т 3. Це п о я с н ю є т ь с я т и м , що
система п е р е р и в а н н я п р о г р а м н е д о з в о л я є в и к о н а н н я н а с т у п н о г о п е р е р и в а н н я . Після
закінчення в и к о н а н н я п р о г р а м и 2 в и к о н у є т ь с я п р о г р а м а 3 ( з в и ч а й н о , я к щ о вона м а є
вищий пріоритет, ніж програма 1), а тоді відбувається повернення до виконання програми 1.
В другому в и п а д к у з п о с т у п л е н н я м к о ж н о г о з а п и т у п е р е р и в а н н я він о б с л у г о в у є т ь с я без
затримки. Ч и м більша глибина п е р е р и в а н н я , т и м к р а щ е в р а х о в у ю т ь с я п р і о р и т е т и з а п и ­
тів п е р е р и в а н н я . Я к щ о tp або to більше за час н а д х о д ж е н н я з а п и т у п е р е р и в а н н я від того
ж джерела (події), то в и н и к а є так з в а н е н а с и ч е н н я системи п е р е р и в а н н я , чого не м о ж н а
допускати.

11.5.3. Вхід в переривальну програму


П р и п о с т у п л е н н і з а п и т у п е р е р и в а н н я с и с т е м и п е р е р и в а н н я п р о г р а м п о в и н н а спо­
чатку в и з н а ч и т и д о п у с т и м и й м о м е н т п е р е р и в а н н я і початкову адресу п е р е р и в а л ь н о ї
програми. П р и цьому, для з а б е з п е ч е н н я п о в е р н е н н я до п е р е р и в а н о ї п р о г р а м и , вміст
елементів пам'яті комп'ютера, в п е р ш у чергу л і ч и л ь н и к а к о м а н д та регістра станів, в м о ­
мент її п е р е р и в а н н я п о в и н е н б у т и з б е р е ж е н и й з т и м , щ о б після з а в е р ш е н н я в и к о н а н ­
ня переривальної к о м а н д и в і д н о в и т и цей вміст та п р о д о в ж и т и в и к о н а н н я п е р е р и в а н о ї
програми.
Існують н а с т у п н і с п о с о б и в и з н а ч е н н я д о п у с т и м о г о м о м е н т у п е р е р и в а н н я :
• включення в кожну команду програми розряду дозволу переривання. В цьому
випадку програміст сам слідкує за т и м , щ о б п е р е р и в а н н я не з а ш к о д и л о в и к о н а н н ю пе­
рериваної п р о г р а м и . Недолік цього способу - в е л и к и й час реакції tp, а т а к о ж с т в о р е н н я
додаткових клопотів програмісту;
• п е р е р и в а н н я д о з в о л е н о після з а к і н ч е н н я будь-якої к о м а н д и . Недоліки ц ь о г о
способу: необхідність з а п а м ' я т о в у в а т и с т а н и п р о г р а м н о д о с т у п н и х регістрів п р о ц е с о р а
та комірок пам'яті, в к л ю ч а ю ч и і кеш п а м ' я т ь , а т а к о ж м а л и й час реакції tp, я к и й є р і в н и м
часу в и к о н а н н я к о м а н д и ;
• п е р е р и в а н н я д о з в о л е н о після к о ж н о г о т а к т у к о м а н д и . Тут час реакції tp є міні­
мальним. Недолік ц ь о г о способу: необхідність з б е р е ж е н н я станів не т і л ь к и п р о г р а м н о
доступних регістрів та к о м і р о к пам'яті, в к л ю ч а ю ч и і кеш п а м ' я т ь , а й н е д о с т у п н и х п р о ­
грам і вузлів, з о к р е м а вмісту л і ч и л ь н и к а тактів.
408

Д р у г и й і т р е т і й с п о с о б и в и к о р и с т о в у ю т ь с я в к о м п ' ю т е р а х найчастіше. П р и цьоіну


п о т р і б н о з а з н а ч и т и , що для їх реалізації в п р о ц е с о р необхідно ввести спеціальні апа­
ратні та п р о г р а м н і з а с о б и для п р о в е д е н н я о п е р а ц і й із з б е р е ж е н н я та відновлення після
з а в е р ш е н н я п е р е р и в а л ь н о ї п р о г р а м и вмісту п р о г р а м н о д о с т у п н и х регістрів та комірок
о с н о в н о ї пам'яті, в я к и х зберігалася п р о г р а м а , в к л ю ч а ю ч и і кеш п а м ' я т ь . Як ми вже наго­
л о ш у в а л и р а н і ш е , д л я о б р о б к и п е р е р и в а н ь в п а м ' я т і м і к р о к о м а н д п р и с т р о ю керування
для цього з а п и с а н і спеціальні м і к р о п р о г р а м и .
Після в и з н а ч е н н я д о п у с т и м о г о м о м е н т у п е р е р и в а н н я п о т р і б н о в и з н а ч и т и початкову
адресу п е р е р и в а л ь н о ї п р о г р а м и з т и м , щ о б п р и с т у п и т и до її в и к о н а н н я . З р о з у м і л о , що
джерел п е р е р и в а н н я м о ж е б у т и декілька. Це, н а п р и к л а д , з а п и т и від п р и с т р о ї в введення-
в и в е д е н н я , від д ж е р е л а ж и в л е н н я , від засобів з а х и с т у пам'яті, від А Л П . Тому система
п е р е р и в а н н я п р о г р а м п о в и н н а вміти р о з п і з н а т и п р и ч и н у п е р е р и в а н н я та вказати на по­
чаткову адресу п р о г р а м и , я к а о б р о б л я є це п е р е р и в а н н я . Існують наступні способи ви­
з н а ч е н н я п о ч а т к о в о ї адреси п е р е р и в а л ь н о ї п р о г р а м и :
• п р о г р а м н е р о з п і з н а в а н н я п р и ч и н п е р е р и в а н н я . З а п и т п е р е р и в а н н я спочатку фік­
сується, а потім п е р е р и в а л ь н а п р о г р а м а п р о в о д и т ь о п и т у в а н н я джерел п е р е р и в а н н я ;
• а п а р а т н е р о з п і з н а в а н н я п р и ч и н п е р е р и в а н н я . Тут к о ж н о м у д ж е р е л у перериван­
н я , або групі джерел п е р е р и в а н н я , с т а в и т ь с я у відповідність своя адреса початку пере­
р и в а л ь н о ї п р о г р а м и . Кількість п о ч а т к о в и х а д р е с рівна кількості рівнів системи перери­
в а н н я . Для реалізації ц ь о г о способу потрібні додаткові апаратні засоби. .
З а з в и ч а й в и к о р и с т о в у ю т ь к о м б і н а ц і ю о б о х о п и с а н и х способів, т о б т о а п а р а т н о - п р о ­
грамне розпізнавання причин переривання.
Н а р и с . 11.10 н а в е д е н о пристрій ф і к с у в а н н я з а п и т і в п е р е р и в а н н я та ф о р м у в а н н я по­
чаткової адреси п е р е р и в а л ь н о ї п р о г р а м и .
Залити перебивання

_Щ1 1Ш_ ІШ_ 1Ш_


Регістр коду п е р е р и в а н н я

Поча хсва
т

В пристрій адреса
•(еруэання переривальної
програми

Рис. 11.10. Пристрій фіксування запитів переривання


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

З а п и т и п о с т у п а ю т ь в систему п е р е р и в а н н я по спеціальній ш и н і з а п и т у п е р е р и в а н ­
ня. З а п и т и з о д н а к о в и м п р і о р и т е т о м п о с т у п а ю т ь на ті ж самі логічні схеми А Б О . С и г н а л
п е р е р и в а н н я сигналізує п р о те, що д а н и й п р и с т р і й п о т р е б у є п е р е р и в а н н я п р о г р а м и . Всі
сигнали п е р е р и в а н н я з а з в и ч а й ф і к с у ю т ь с я в регістрі коду п е р е р и в а н н я РгКП. О с к і л ь к и
сигнали п е р е р и в а н н я є а с и н х р о н н и м и , б у д ь - я к и й п р и с т р і й м о ж е послати п е р е р и в а н н я в
довільний м о м е н т часу, в к л ю ч а ю ч и і м о м е н т и , коли о б р о б л я є т ь с я п о п е р е д н є п е р е р и в а н ­
ня. Для з а п о б і г а н н я в и к о н а н н я п е р е р и в а н н я п р о г р а м и д о з б е р е ж е н н я необхідної і н ф о р ­
мації, потрібної для п о в е р н е н н я до в и к о н а н н я п е р е р и в а н о ї п р о г р а м и , до складу системи
п е р е р и в а н н я п р о г р а м в в о д и т ь с я т р и г е р б л о к у в а н н я п е р е р и в а н н я ( Т Б П ) . Крім того, в
системі п е р е р и в а н н я існує т р и г е р о ч і к у в а н н я п е р е р и в а н н я ( Т О П ) , я к и й і н ф о р м у є п р и ­
стрій к е р у в а н н я п р о п о т р е б у п р о в е д е н н я п е р е р и в а н н я . Тригер б л о к у в а н н я п е р е р и в а н н я
блокує схеми І, та не д о з в о л я є фіксацію з а п и т у п е р е р и в а н н я в тригері о ч і к у в а н н я пере­
р и в а н н я . З а з н а ч е н н я м в м і с т у регістра коду п е р е р и в а н н я д е ш и ф р а т о р ф о р м у є почат­
кову адресу п е р е р и в а л ь н о ї п р о г р а м и . М і к р о н а к а з и с к и д а н н я регістра Р г К П та тригерів
ТБП і Т О П ф о р м у є п р и с т р і й к е р у в а н н я комп'ютера.

11.5.4. Пріоритетне обслуговування переривання


Джерел п е р е р и в а н н я в к о м п ' ю т е р і є багато, і з а п и т и від н и х м о ж у т ь п о с т у п а т и о д н о ­
часно, т о м у п о т р і б н о в с т а н о в и т и п о р я д о к їх о б с л у г о в у в а н н я , т о б т о п р і о р и т е т н і с т ь .
В системі п е р е р и в а н н я п р о г р а м є два т и п и п р і о р и т е т і в :
• пріоритет м і ж з а п и т а м и п е р е р и в а н ь ;
• пріоритет м і ж п е р е р и в а л ь н и м и п р о г р а м а м и .
П е р ш и й пріоритет п о т р і б н и й г о л о в н и м ч и н о м д л я селекції: в и б и р а є т ь с я один з а п и т
з багатьох, оскільки к о м п ' ю т е р не з а в ж д и м о ж е відразу п р и й н я т и декілька з а п и т і в . Він
може бути р е а л і з о в а н и й м е т о д о м послідовного пошуку, а б о ш л я х о м п а р а л е л ь н о г о де­
ш и ф р у в а н н я всіх з а п и т і в , та в и б о р у з них одного за я к и м о с ь п р а в и л о м , н а п р и к л а д , з
н а й м е н ш и м н о м е р о м серед п р и й н я т и х з а п и т і в .
Другий пріоритет в и з н а ч а є ф а к т и ч н и й п о р я д о к , в я к о м у п е р е р и в а л ь н і п р о г р а м и бу­
дуть в и к о н у в а т и с ь .
Вибір п р і о р и т е т у п р о г р а м в багаторівневій системі п е р е р и в а н н я п р о г р а м є д о с и т ь
складною задачею. Часто п р і о р и т е т н і с т ь п р о г р а м п о т р і б н о п о м і н я т и . Тому встановлен
ня пріоритетів м а є бути п р о г р а м н о к е р о в а н и м .
В сучасних к о м п ' ю т е р а х в и к о р и с т о в у є т ь с я м е т о д в с т а н о в л е н н я п р о г р а м н о - к е р о в а ­
ного пріоритету, я к и й з а б е з п е ч у є п р и с в о є н н я п р і о р и т е т у п р о г р а м і с т о м , я к и й н а з и в а ­
ють маскою п е р е р и в а н ь . Маска п е р е р и в а н ь - це д в і й к о в е ч и с л о , к о ж н и й р о з р я д я к о г о
ставиться у відповідність о д н о м у із рівнів п е р е р и в а н н я і д о з в о л я є ( я к щ о його з н а ч е н н я
рівне 1), а б о з а б о р о н я є ( я к щ о й о г о з н а ч е н н я рівне 0) п е р е р и в а н н я від з а п и т і в , які нале­
жать до даного рівня. Існує р е г і с т р м а с к и п е р е р и в а н ь , в м і с т я к о г о з м і н ю є т ь с я п р о г р а м ­
ним ш л я х о м . З н а ч е н н я р о з р я д і в ц ь о г о регістра п о с т у п а ю т ь на логічні схеми І п р и с т р о ю
фіксування з а п и т і в п е р е р и в а н н я т а ф о р м у в а н н я п о ч а т к о в о ї а д р е с и п е р е р и в а л ь н о ї п р о ­
грами, як це п о к а з а н о на рис. 11.11, та д о з в о л я ю т ь , а б о з а б о р о н я ю т ь , фіксацію з а п и т у
п е р е р и в а н н я в тригері о ч і к у в а н н я п е р е р и в а н н я Т О П . Д л я того, щ о б з н а ч е н н я в тригері
очікування п е р е р и в а н н я не було з м і н е н е до й о г о фіксації, в п р и с т р і й в в е д е н о т р и г е р
блокування п е р е р и в а н ь Т Б П .
470

Маска переривання

LLLL J Ü L І Ш
L
Ре-іетр ч а с к и перериванні Регістр коду перерив.

Початкова

Т
адреса
В пристрій оеоеоивальиоі
програми

Рис. 11.11. Пристрій фіксування запитів переривання та формування початкової


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

Для к о ж н о ї п е р е р и в а л ь н о ї п р о г р а м и м о ж е б у т и в с т а н о в л е н а своя маска. Маска для


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

11.5.5. Організація повернення до переривано) програми


П о в е р н е н н я до п е р е р и в а н о ї п р о г р а м и п о л я г а є у відновленні стану цієї програми, в
я к о м у в о н а була в м о м е н т п е р е р и в а н н я і я к и й був з б е р е ж е н и й в м о м е н т входу в пере-
р и в а л ь н у програму.
І н ф о р м а ц і я п р о б і ж у ч и й стан п е р е р и в а н о ї п р о г р а м и ділиться на дві частини:
• основну, яка повинна запам'ятовуватись завжди при вході в переривальну програму;
• додаткову і н ф о р м а ц і ю , необхідність з а п а м ' я т о в у в а н н я якої з а л е ж и т ь від змісту
переривальної програми.
До складу п е р ш о ї ч а с т и н и і н ф о р м а ц і ї п р о б і ж у ч и й стан п е р е р и в а н о ї програми на­
лежать:
• вміст л і ч и л ь н и к а команд;
• стан т р и г е р а р о б о т и к о м п ' ю т е р а ( р о б о т а / з у п и н к а ) ;
• маска п е р е р и в а н н я ;
• код п е р е р и в а н н я - д в і й к о в и й н о м е р джерела п е р е р и в а н н я ;
• вміст регістрів захисту пам'яті.
411

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


кілька комірок о с н о в н о ї пам'яті.
В деяких комп'ютерах, наприклад в системі I B M 370, для з б е р е ж е н н я вектора перери­
вання використовується регістр слова стану програми РгССП. В ньому зберігаються код
переривання, маска п е р е р и в а н н я та інша в а ж л и в а і н ф о р м а ц і я . Початкова частина перери­
вальної програми проводить з а п а м ' я т о в у в а н н я С С П перериваної п р о г р а м и і встановлює
С С П переривальної програми. Заключна частина переривальної п р о г р а м и відновлює С С П
перериваної програми. Під час заміни С С П будь-яке нове п е р е р и в а н н я з а б о р о н я є т ь с я .
До складу другої частини і н ф о р м а ц і ї п р о б і ж у ч и й стан п е р е р и в а н о ї п р о г р а м и нале­
жать вміст індексних та і н ш и х п р о г р а м н о д о с т у п н и х регістрів. В більшості в и п а д к і в сам
програміст визначає, що т у т необхідно зберігати.

11.5.6. Введення-виведення за перериваннями


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

Переривана
програма Переривальна
програма
1
друкування
2
З
1
Сигнал
переривання 2
•> і

і+1

К-1

К
М-1

Рис. 11.12. Обслуговування переривання підпрограми друкування


Я к щ о сигнал п е р е р и в а н н я п о с т у п а в при в и к о н а н н і і-1 к о м а н д и п е р е р и в а н о ї п р о г р а ­
ми, її в и к о н а н н я закінчується, з а п а м ' я т о в у є т ь с я вміст п р о г р а м н о г о л і ч и л ь н и к а і п р о ­
цесор переходить д о в и к о н а н н я п е р е р и в а л ь н о ї п р о г р а м и д р у к у в а н н я , після з а к і н ч е н н я
412

якої з н о в у з а г р у ж а є в п р о г р а м н и й л і ч и л ь н и к р а н і ш е з а п а м ' я т о в а н е з н а ч е н н я , і продо­


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

11.6. Прямий доступ до пам'яті


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

Процесор

•' Адреса пам'яті Основна


[ Кількість башів пам'ять
і Номер пристрою
V , , у

Шина
даних

Інтерфв Принт ор

Контролер
прямого
доступу
до пам'яті
Інтерфейс Магнітний
ДИСК

Рис. 11.13. Двоканальний контролер прямого доступу до пам'яті


413

До складу к о н т р о л е р а входять:
• регістр даних;
• регістр адреси;
• л і ч и л ь н и к слів;
• регістр команд;
• регістр станів;
• логіка к е р у в а н н я .
Ці вузли м а ю т ь свої адреси д л я з а с и л а н н я в н и х і н ф о р м а ц і ї з п р о ц е с о р а . Кількість
таких вузлів кратна кількості каналів.
Для п о ч а т к у п е р е д а в а н н я даних м і ж п а м ' я т т ю і п р и с т р о є м в в е д е н н я - в и в е д е н н я в
контролер з а п и с у є т ь с я н а с т у п н а і н ф о р м а ц і я :
• адреса пам'яті;
• кількість слів;
• адреса даних в п р и с т р о ї в в е д е н н я - в и в е д е н н я (на диску);
• виконувана функція (запис/зчитування).
Ця і н ф о р м а ц і я п о с т у п а є в к о н т р о л е р з п р о ц е с о р а . Коли передача закінчена, цей ф а к т
реєструється в регістрі станів к о н т р о л е р а . Тут т а к о ж з а п и с у є т ь с я і н ф о р м а ц і я п р о по­
м и л к и при передачі даних. Після з а к і н ч е н н я в в е д е н н я - в и в е д е н н я , чи при н а я в н о с т і по­
м и л к и , система п р я м о г о д о с т у п у д о п а м ' я т і п о в і д о м л я є п р о ц е п р о ц е с о р відповідним
сигналом п е р е р и в а н н я .
Як це в и д н о з рисунку, к о н т р о л е р п р я м о г о д о с т у п у до п а м ' я т і та п р о ц е с о р розді­
ляють ш и н у пам'яті. Тільки один з н и х в той же час м о ж е мати к о н т р о л ь над ш и н о ю .
Загалом, п р и с т р о ї в в е д е н н я - в и в е д е н н я м а ю т ь перевагу над п р о ц е с о р о м п р и взаємодії
з пам'яттю, т о м у що багато п р и с т р о ї в в в е д е н н я - в и в е д е н н я діють з с у т т є в и м и ч а с о в и м и
о б м е ж е н н я м и . Я к щ о в о н и не п р о в о д я т ь ніякої діяльності в м е ж а х в к а з а н о г о періоду,
вони п р и п и н я ю т ь р о б о т у і п е р е р и в а ю т ь п р о ц е с в в е д е н н я - в и в е д е н н я . О с к і л ь к и пере­
силання і н ф о р м а ц і ї від п р и с т р о ї в в в е д е н н я - в и в е д е н н я з д і й с н ю є т ь с я блоками не д о с и т ь
довгої тривалості, це не с у т т є в о в п л и в а є на п р о д у к т и в н і с т ь п р о ц е с о р а .

7 7.7. Введення-виведення під керуванням периферійних


процесорів

11.7.1. Принципи введення-виведення під керуванням периферійних


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

ня а б о запису. У в и п а д к у невдачі, о б о в ' я з о к по в ж и в а н н ю відповідних заходів лежить


на п р о ц е с о р і . Тому, в в е д е н н я с и с т е м и п р я м о г о д о с т у п у до пам'яті вимагає л и ш е трохи
м е н ш о ї участі п р о ц е с о р а , н і ж при к е р о в а н о м у п е р е р и в а н н я м и введенні-виведенні. Такі
підходи до організації в в е д е н н я - в и в е д е н н я допустимі для м а л и х систем, орієнтованих
на одного користувача, проте, в о н и не є е ф е к т и в н и м и д л я в е л и к и х систем, орієнтованих
на багатьох користувачів, як н а п р и к л а д , великі у н і в е р с а л ь н і к о м п ' ю т е р и - м е й н ф р е й м и .
Більшість м е й н ф р е й м і в в и к о р и с т о в у ю т ь і н т е л е к т у а л ь н и й в и д інтерфейсу п р я м о г о до­
с т у п у д о пам'яті, відомого я к к а н а л ь н е в в е д е н н я - в и в е д е н н я .
П р и в и к о р и с т а н н і к а н а л ь н о г о в в е д е н н я - в и в е д е н н я один або більше процесорів вве­
д е н н я - в и в е д е н н я , які щ е н а з и в а ю т ь к а н а л а м и , керують р і з н и м и т р а к т а м и введення-ви­
в е д е н н я . Т р а к т и для "повільних" п р и с т р о ї в , як, н а п р и к л а д , термінали і принтери, мо­
ж у т ь к о м б і н у в а т и с я ( м у л ь т и п л е к с у в а т и с я ) , д о з в о л я ю ч и к е р у в а н н я деякою кількістю
ц и х п р и с т р о ї в тільки о д н и м п р о ц е с о р о м в в е д е н н я - в и в е д е н н я . В м е й н ф р е й м а х фірми
I B M п р о ц е с о р в в е д е н н я - в и в е д е н н я , я к и й керує м у л ь т и п л е к с о в а н и м к а н а л ь н и м трактом,
н а з и в а ю т ь м у л ь т и п л е к с н и м к а н а л о м ( М П К ) . К а н а л и д л я дисководів й і н ш и х "швидких"
п р и с т р о ї в н а з и в а ю т ь с е л е к т о р н и м и к а н а л а м и (СК).
П р о ц е с о р и в в е д е н н я - в и в е д е н н я о п т и м і з у ю т ь д л я організації в и к о н а н н я операцій
в в е д е н н я - в и в е д е н н я . На відміну від схем п р я м о г о д о с т у п у до пам'яті, п р о ц е с о р и вве­
д е н н я - в и в е д е н н я м а ю т ь здатність в и к о н у в а т и п р о г р а м и , які в к л ю ч а ю т ь арифметично-
логічні к о м а н д и та к о м а н д и переходу. На рис. 11.14 наведена с п р о щ е н а конфігурація ка­
нального введення-виведення.

Основна
пам'ять

Шина
пам'яті

Центральний
процесор

Магнітний
диск

Рис. 11.14. Спрощена конфігурація канального введення-виведення

П р о ц е с о р и в в е д е н н я - в и в е д е н н я в и к о н у ю т ь п р о г р а м и , які р о з м і щ е н і центральним
п р о ц е с о р о м в о с н о в н і й пам'яті. Ці п р о г р а м и , складаючись з серій слів команд каналу,
в к л ю ч а ю т ь не тільки ф а к т и ч н і к о м а н д и п е р е с и л а н н я , але і к о м а н д и , які керують при-
475

строями в в е д е н н я - в и в е д е н н я . Н а з в а н і к о м а н д и в к л ю ч а ю т ь різні в и д и ініціалізацій п р и ­


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

7 7.7.2. Причини застосування каналів введення-виведення


Поява каналів в в е д е н н я - в и в е д е н н я в и к л и к а н а необхідністю:
• с т в о р е н н я к о м п ' ю т е р н и х систем із з м і н н и м складом о б л а д н а н н я ;
• з а б е з п е ч е н н я паралельної р о б о т и п р и с т р о ї в в в е д е н н я - в и в е д е н н я по в і д н о ш е н ­
ню до інших п р и с т р о ї в в в е д е н н я - в и в е д е н н я і до п р о ц е с о р а ;
• уніфікація п р о г р а м у в а н н я в в е д е н н я - в и в е д е н н я ;
• забезпечення реакції о б ч и с л ю в а л ь н и х засобів на багатоманітність ситуацій, які
виникають в п р и с т р о я х в в е д е н н я - в и в е д е н н я (готовність, збій і т. п.);
• узгодження ш в и д к о с т і р о б о т и п р о ц е с о р а і п р и с т р о ї в в в е д е н н я - в и в е д е н н я ;
• р о з в а н т а ж е н н я п р о ц е с о р а від в и к о н а н н я ф у н к ц і й к е р у в а н н я о б м і н о м .
Канал (пристрій обміну, п р о ц е с о р в в е д е н н я - в и в е д е н н я ) - с п е ц і а л ь н и й у н і ф і к о в а н и й
пристрій к е р у в а н н я в в о д о м - в и в о д о м , я к и й з а б е з п е ч у є обмін і н ф о р м а ц і є ю м і ж я д р о м
комп'ютера ( п р о ц е с о р о м і о с н о в н о ю п а м ' я т т ю ) , та п е р и ф е р і й н и м и п р и с т р о я м и з здій­
сненням паралельної р о б о т и з м і н н о г о н а б о р у п е р и ф е р і й н и х п р и с т р о ї в різних типів.
При цьому в комп'ютері п о в и н н і бути у н і ф і к о в а н і ш и н и , схеми п і д к л ю ч е н н я , сигна­
ли та алгоритми к е р у в а н н я о б м і н о м , ф о р м а т і м н о ж и н а к о м а н д п р о ц е с о р а .
416

11.7.3. Функції каналів введення-виведення


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

коп влк влд ВПІ впкп ПА N

Рис. 11.15. Формат керуючого слова каналу

Д о ф у н к ц і й каналів в в е д е н н я - в и в е д е н н я н а л е ж а т ь наступні:
1. В и з н а ч е н н я т и п у операції в в е д е н н я - в и в е д е н н я . Тип операції введення-виведення
з а д а є т ь с я кодом операції К О П .
2. О р г а н і з а ц і я л а н ц ю г а о п е р а ц і й . Ланцюг о п е р а ц і й - це послідовність КС, кожне з
я к и х о п и с у є нову о п е р а ц і ю в в е д е н н я - в и в е д е н н я над н о в и м м а с и в о м інформації. Для ор­
ганізації л а н ц ю г а о п е р а ц і й до с к л а д у КС в в о д я т ь р о з р я д вказівника ланцюга операцій
ВЛО. Я к щ о ВЛО = 1, то після в и к о н а н н я КС в и б и р а є т ь с я нове КС, я к щ о ВЛО = 0, то дане
КС є о с т а н н і м в ланцюгу.
3. В и з н а ч е н н я області пам'яті. О б л а с т ь пам'яті з а д а є т ь с я п о ч а т к о в о ю адресою ПА і
р о з м і р о м області X , т о б т о кількістю слів, п о ч и н а ю ч и від п о ч а т к о в о г о слова.
4. О р г а н і з а ц і я л а н ц ю г а даних. Л а н ц ю г даних організується при роботі з масивами
даних. Ланцюг д а н и х - це послідовність з декількох КС. Після з а к і н ч е н н я введення-ви­
ведення одного м а с и в у даних, канал п е р е х о д и т ь до і н ш о г о КС. Для к е р у в а н н я ланцюгом
д а н и х в и к о р и с т о в у є т ь с я д в і й к о в и й р о з р я д - в к а з і в н и к ланцюга даних ВЛД, який при­
й м а є одне з двох значень - 0 а б о 1. Я к щ о в к а з і в н и к ланцюга рівний 1, то канал вибирає з
пам'яті н а с т у п н е КС, я к щ о в к а з і в н и к л а н ц ю г а р і в н и й 0, то операція закінчується.
5. З а б е з п е ч е н н я п р о п у с к у інформації. З а п и с у ю т ь с я / з ч и т у ю т ь с я окремі частини ма­
сиву та п р о п у с к а ю т ь с я дані, які не є п о т р і б н и м и в к о н к р е т н о м у випадку. Для реалізації
п р о п у с к у і н ф о р м а ц і ї в керуюче слово к а н а л у в в о д и т ь с я р о з р я д вказівника пропуску ін­
ф о р м а ц і ї ВПІ. Я к щ о ВПІ = 0, то в и к о н у є т ь с я КС, я к щ о ВПІ = 1, то запис/зчитування не
п р о в о д и т ь с я , л и ш е п і д р а х о в у ю т ь с я дані.
У т в о р е н н я ланцюгів д а н и х і о п е р а ц і й м о ж н а к о м б і н у в а т и . В з а г а л ь н о м у випадку
л а н ц ю г КС - це п р о г р а м а каналу.
6. О р г а н і з а ц і я п е р е р и в а н н я в в е д е н н я - в и в е д е н н я .
Канал і н ф о р м у є ц е н т р а л ь н и й п р о ц е с о р п р о хід в в е д е н н я - в и в е д е н н я , посилаючи за­
п и т и п е р е р и в а н н я . Два о с н о в н и х в и д и п е р е р и в а н ь - п р о г р а м н о - к е р о в а н е переривання і
п е р е р и в а н н я , яке в и к л и к а н е з а к і н ч е н н я м в в е д е н н я - в и в е д е н н я . На наявність програмно-
к е р о в а н о г о п е р е р и в а н н я вказує відповідний р о з р я д в КС, я к и й н а з и в а ю т ь вказівником
п р о г р а м н о - к е р о в а н о г о п е р е р и в а н н я В П К П . Я к щ о В П К П = 1, то апаратура каналу фор­
м у є з а п и т п е р е р и в а н н я , в и к о н у ю ч и о д н о ч а с н о п о т о ч н у операцію введення-виведення.
П е р е р и в а н н я , з в ' я з а н і з з а к і н ч е н н я м в в е д е н н я - в и в е д е н н я , ф о р м у ю т ь с я , я к щ о виконані
всі операції в л а н ц ю г у КС, або в и я в л е н і п о м и л к и .
477

/1.7.4. Керуюча інформація каналу введення-виведення


Існує 4 в и д и керуючої і н ф о р м а ц і ї к а н а л у в в е д е н н я - в и в е д е н н я : к о м а н д и ц е н т р а л ь н о ­
го процесора, керуюче слово каналу, н а к а з и п е р и ф е р і й н и м п р и с т р о я м та коди стану пе­
риферійних п р и с т р о ї в і каналів. На рис. 11.16 н а в е д е н о з а к р і п л е н н я керуючої і н ф о р м а ц і ї
каналу за п р и с т р о я м и комп'ютера.
Код стану каналу Код стану
периферійного пристрою
Код стану
Центральний периферійного пристрою Периферійний
Канал
процесор пристрій

Команди
Керуючі слова канапу
введення-виведення

Рис. 11.16. Керуюча інформація каналу

Команди в в е д е н н я - в и в е д е н н я к е р у ю т ь р о б о т о ю ц е н т р а л ь н о г о п р о ц е с о р а . Послідов­
ність к о м а н д в в е д е н н я - в и в е д е н н я - це п р о г р а м а ц е н т р а л ь н о г о п р о ц е с о р а по в в е д е н н ю -
виведенню інформації. Ф о р м а т к о м а н д и в в е д е н н я - в и в е д е н н я н а в е д е н о на рис. 11.17.

коп нк нпвв АКС

Рис. 11.17. Формат команди введення-виведення

До складу к о м а н д и ц е н т р а л ь н о г о п р о ц е с о р а в х о д я т ь н а с т у п н і п о л я : К О П - поле коду


операції, я к е з а д а є операції з а п у с к у в в е д е н н я - в и в е д е н н я , п р и п и н е н н я в в е д е н н я - в и в е ­
дення, опит стану каналу, о п и т с т а н у п р и с т р о ю в в е д е н н я - в и в е д е н н я ; поле н о м е р а кана­
лу НК; поле н о м е р а п р и с т р о ю в в е д е н н я - в и в е д е н н я Н П В В ; поле а д р е с и керуючого слова
каналу АКС.
Код операції керуючого слова каналу, я к и й наведено на рис. 11.15, з а д а є о п е р а ц і ю
введення і н ф о р м а ц і ї в о с н о в н у п а м ' я т ь ; о п е р а ц і ю з ч и т у в а н н я і н ф о р м а ц і ї з о с н о в н о ї
пам'яті в п е р и ф е р і й н и й п р и с т р і й , о п и т с т а н у п е р и ф е р і й н о г о п р и с т р о ю , о п е р а ц і ю видачі
в п е р и ф е р і й н и й п р и с т р і й н а к а з у т и п у "перехід в каналі".
Наказ - це ч а с т и н а КС (або код, я к и й а д р е с у є т ь с я КС) - код, я к и й п р и й м а є т ь с я з
каналу і в и к о н у є т ь с я п е р и ф е р і й н и м п р и с т р о є м . Н а к а з м і с т и т ь і н ф о р м а ц і ю , с п е ц и ф і ч ­
ну для даного п е р и ф е р і й н о г о п р и с т р о ю (магнітного диску, магнітної стрічки, о п т и ч н о ї
пам'яті, давана і т. д.).
Коди стану і н ф о р м у ю т ь ц е н т р а л ь н и й п р о ц е с о р п р о стан к а н а л у т а п е р и ф е р і й н о г о
пристрою (справність, готовність і т. д.).

11.7.5. Мультиплексный та селекторний канали введення-виведення


За здатністю до одночасного о б с л у г о в у в а н н я декількох п е р и ф е р і й н и х п р и с т р о ї в р о з ­
різняють два в и д и каналів: м у л ь т и п л е к с н и й і селекторний.
Мультиплексний канал д о з в о л я є о д н о ч а с н о о б с л у г о в у в а т и декілька п а р а л е л ь н о пра­
цюючих п е р и ф е р і й н и х п р и с т р о ї в . К о ж н и й п е р и ф е р і й н и й п р и с т р і й п р а ц ю є з к а н а л о м в
визначений сеанс зв'язку. Для р і з н и х п е р и ф е р і й н и х п р и с т р о ї в існують свої п р і о р и т е т и .
Тому при о д н о ч а с н о м у запиті на о б с л у г о в у в а н н я м о ж е б у т и черга. Звідси з р о з у м і л о , що
418

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


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

1-й підканал
Мультиплексний
Пам'ять канал
МК І- и підканал

k - й підканал

Центральний
процесор Загальне обладнання МК

Периферійний Периферійний Периферійний


пристрій пристрій пристрій

Рис. 11.18. Мультиплексний канал

В м у л ь т и п л е к с н о м у каналі м о ж е б у т и м о ж л и в і с т ь м о н о п о л ь н о г о обслуговування
одного п е р и ф е р і й н о г о п р и с т р о ю . В ц ь о м у р е ж и м і один з підканалів повністю займає
канал. Це д о з в о л я є п і д к л ю ч и т и до м у л ь т и п л е к с н о г о к а н а л у швидкодіючі периферійні
пристрої.
С е л е к т о р н и й к а н а л п р и з н а ч е н и й д л я м о н о п о л ь н о г о о б с л у г о в у в а н н я одного перифе­
р і й н о г о п р и с т р о ю . Він обслуговує ш в и д к о д і ю ч і пристрої. Ф а к т и ч н о селекторний канал
м а є один підканал. Тому він є п р о с т і ш и м , н і ж м у л ь т и п л е к с н и й канал. До його складу
входять, крім п а м ' я т і , п р и с т р і й к е р у в а н н я та регістри, до я к и х належать наступні: ре­
гістр н о м е р а п е р и ф е р і й н о г о п р и с т р о ю , регістр к о м а н д и в в е д е н н я - в и в е д е н н я , регістр ке­
руючого слова, регістр а д р е с и керуючого слова, регістри з в ' я з к у з периферійними при­
с т р о я м и та о с н о в н о ю п а м ' я т т ю , л і ч и л ь н и к слів.
479

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


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

11.8. Короткий зміст розділу


П р и с т р о ї в в е д е н н я - в и в е д е н н я п р и з н а ч е н і д л я в в е д е н н я і н ф о р м а ц і ї в к о м п ' ю т е р та
виведення і н ф о р м а ц і ї з к о м п ' ю т е р а . Існує ш и р о к и й с п е к т р п р и с т р о ї в в в е д е н н я - в и в е д е н ­
ня, з о к р е м а клавіатура, ц и ф р о в а відеокамера, сенсорні е к р а н и , світлове перо, м и ш к а ,
аналогові п р и с т р о ї з ц и ф р о в и м в х о д о м та виходом, е л е к т р о н н о - п р о м е н е в а трубка, рід­
кокристалічний дисплей, п р и н т е р та інші.
О с к і л ь к и в комп'ютері м о ж е б у т и багато п р и с т р о ї в в в е д е н н я - в и в е д е н н я , п р и звер­
ненні до них, їх п о т р і б н о р о з п і з н а т и . С п о с і б р о з п і з н а в а н н я з а л е ж и т ь від способу їх під­
ключення до процесора. В розділі н а в е д е н о п о я с н е н н я способів р о з п і з н а в а н н я п р и с т р о ­
їв в в е д е н н я - в и в е д е н н я з в и к о р и с т а н н я м ш и н и в в е д е н н я - в и в е д е н н я , лінії активації та
скритого п а м ' я т т ю в в е д е н н я - в и в е д е н н я . П о д а н а схема та описані функції інтерфейсної
схеми п р и с т р о ї в в в е д е н н я - в и в е д е н н я .
Наведено ч о т и р и з а г а л ь н и х м е т о д и к е р у в а н н я в в е д е н н я м - в и в е д е н н я м т а пояснена
суть, переваги та недоліки п р о г р а м н о к е р о в а н о г о в в е д е н н я - в и в е д е н н я .
О с к і л ь к и в а ж л и в о ю с к л а д о в о ю ч а с т и н о ю засобів к е р у в а н н я в в е д е н н я м - в и в е д е н н я м
є система п е р е р и в а н н я п р о г р а м , я к а п р и з н а ч е н а д л я реакції на п р о г р а м н о - н е з а л е ж ­
ні події, в розділі наведений її д е т а л ь н и й опис. П е р е р и в а н н я п р о г р а м - це властивість
комп'ютера т и м ч а с о в о п е р е р и в а т и в и к о н а н н я біжучої п р о г р а м и п р и в и к о н а н н і д е я к и х
подій і передавати к е р у в а н н я п р о г р а м і , яка спеціально передбачена д л я даної події. Вве­
дено основні п о н я т т я та х а р а к т е р и с т и к и системи п е р е р и в а н н я п р о г р а м : з а п и т и пере­
р и в а н н я , п е р е р и в а л ь н і п р о г р а м и , п е р е р и в а н і п р о г р а м и , час реакції, час о б с л у г о в у в а н н я
п е р е р и в а н н я , глибина п е р е р и в а н н я . Розглянуті п р о г р а м н о - а п а р а т н і з а с о б и , які з а б е з п е ­
чують в и з н а ч е н н я д о п у с т и м о г о м о м е н т у п е р е р и в а н н я і п о ч а т к о в о ї адреси п е р е р и в а л ь -
ної п р о г р а м и п р и п о с т у п л е н н і з а п и т у п е р е р и в а н н я , а д л я з а б е з п е ч е н н я п о в е р н е н н я до
перериваної п р о г р а м и з а б е з п е ч у ю т ь з б е р е ж е н н я вмісту елементів п а м ' я т і к о м п ' ю т е р а
в момент її п е р е р и в а н н я , та, після з а в е р ш е н н я в и к о н а н н я п е р е р и в а л ь н о ї к о м а н д и , від­
новлюють цей вміст та н а д а ю т ь к о м п ' ю т е р у м о ж л и в і с т ь п р о д о в ж и т и в и к о н а н н я пере­
риваної п р о г р а м и .
О п и с а н и й п р я м и й д о с т у п д о п а м ' я т і , й о г о п е р е в а г и т а недоліки, т а о п и с а н а органі­
зація в в е д е н н я - в и в е д е н н я під к е р у в а н н я м п е р и ф е р і й н и х п р о ц е с о р і в (каналів). Н а в е д е ­
ні п р и ч и н и п о я в и к а н а л і в в в е д е н н я - в и в е д е н н я , їх функції, керуюча і н ф о р м а ц і я к а н а л і в
в в е д е н н я - в и в е д е н н я . О п и с а н і ф у н к ц і ї т а склад с е л е к т о р н о г о т а м у л ь т и п л е к с н о г о ка­
налів.
420

11.9. Література для подальшого читання


П и т а н н я м організації в в е д е н н я - в и в е д е н н я і н ф о р м а ц і ї п р и с в я ч е н а значна кількість
літератури. В п е р ш у чергу слід н а з в а т и н а в ч а л ь н у літературу, з о к р е м а п і д р у ч н и к и з ар­
х і т е к т у р и к о м п ' ю т е р а [1-8]. К р і м того, ці п и т а н н я в і д о б р а ж е н і в великій кількості спе­
ціальної л і т е р а т у р и , де о п и с а н і серійні к о м п ' ю т е р и р і з н и х ф і р м - в и р о б н и к і в , я к у можна
знайти на веб-сторінках цих фірм.

11.10. Література до розділу 11


1. Каган Б. М. Электронные вычислительные машины и системы. - M . : Энергия, 1979. - 528 с
2. Каган Б. М., Каневский M. М. Цифровые вычислительные машины и системы. - М.: Энер­
гия, 1974. - 680 с
3. Угрюмов Е. П. Цифровая схемотехника. - СПб.: БХВ - Санкт-Петерберг, 2000. - 528 с
4. Справочник по цифровой вычислительной технике. Б. H Малиновский и др. - К.: Техніка,
1980.-320 с
5. D. Patterson, J. Hennessy. Computer Architecture. A Quantitative Approach. Morgan Kaufmann
Publishers, Inc. 1996.
6. Patterson, D. A., & Hennessy, J. L. Computer Organization and Design, The Hardware/Software
Interface, 2nd ed , San Mateo, C A : Morgan Kaufmann, 1997.
7. Stallings, W. Computer Organization and Architecture, 5th ed., New York, NY: Macmillan Publi­
shing Company, 2000.
8. Tanenbaum, Andrew. Structured Computer Organization, 4th ed., Upper Saddle River, NJ: Prentice
Hall, 1999.

11.11. Питання до розділу 11


1. Назвіть пристрої введення інформації в комп'ютер
2. Назвіть пристрої виведення інформації з комп'ютера
3. ' .
4.
5. Поясніть спосіб розпізнавання пристроїв введення-виведення з використанням шини вве­
дення-виведення
6. Поясніть спосіб розпізнавання пристроїв введення-виведення з використанням лінії ак­
тивації
7. Поясніть суть скритого пам яттю введення-виведення
8. Наведіть схему та назвіть функції інтерфейсної схеми пристроїв введення-виведення
9. Які є чотири загальних методи керування введенням-виведенням?
10. Поясніть суть, переваги та недоліки програмно-керованого введення-виведення
11. Поясніть суть, переваги та недоліки керованого перериваннями введення-виведення
12. Які події належать до програмно незалежних?
13. Які події належать до програмно залежних?
14. Як комп'ютер реагує на програмно визначені події?
15. Як комп'ютер реагує на програмно незалежні події?
16. Для чого є в комп'ютері система переривання програм?
17. Як називають сигнали, які сповіщають про появу програмно незалежних подій?
18. Як називають програми, на виконання яких є запити?
19. Як називають програми, які виконувались до появи запитів?
421

20. Наведіть часову діаграму процесу переривання.


21. Наведіть основні характеристики системи переривання програм.
22. Назвіть способи визначення допустимого моменту переривання.
23. Для чого і як визначається початкова адреса переривальної програми?
24. Назвіть способи визначення початкової адреси переривальної програми.
25. Як працює пристрій фіксування запитів переривання та формування початкової адреси
переривальної програми?
26. Для чого до складу системи переривання програм вводиться тригер блокування пере­
ривання?
27. Де фіксуються переривання?
28. Для чого потрібно встановлювати порядок обслуговування запитів переривання?
29. Для чого потрібний пріоритет між запитами переривань?
30. Для чого потрібний пріоритет між переривальними програмами?
31. Що таке маска переривань та як вона використовується?
32. В чому полягає повернення до перериваної програми?
33. Поясніть суть, переваги та недоліки прямого доступу до пам'яті.
34. Поясніть суть, переваги та недоліки введення-виведення під керуванням периферійних
процесорів (каналів).
35. Що таке канал введення-виведення?
36. Які причини появи каналів введення-виведення?
37. Назвіть функції каналів введення-виведення.
38. Керуюча інформація каналів введення-виведення?
39. Назвіть функції та склад селекторного та мультиплексного каналів.
40. Яка різниця між автономними та вбудованими каналами?
Р о з д і л 12
[ашшшшШ[Щш1[ті[ві[ві[ші[в][ШШШ

Тіаралемші шмпу'юшєрпі системи/


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

12.1. Використання принципів паралельної обробки інформації


в архітектурі комп'ютера
Сьогодні в и к о р и с т а н н я п р и н ц и п і в п а р а л е л ь н о ї о б р о б к и і н ф о р м а ц і ї в архітекту­
рі к о м п ' ю т е р і в є з в и ч н и м . П р а к т и ч н о всі сучасні к о м п ' ю т е р и в и к о р и с т о в у ю т ь той або
і н ш и й в и д паралельної о б р о б к и інформації. На п р е з е н т а ц і я х н о в и х мікросхем і в ін­
ф о р м а ц і й н и х матеріалах в и р о б н и к і в це подається як о с т а н н є слово техніки і передовий
край науки, і це д і й с н о так, я к щ о р о з г л я д а т и р е а л і з а ц і ю ц и х п р и н ц и п і в у мініатюрних
р а м к а х одного кристалу.
Водночас, ідеї п а р а л е л ь н о ї о б р о б к и і н ф о р м а ц і ї з ' я в и л и с я д о с и т ь давно. Вони впро­
в а д ж у в а л и с я в н а й б і л ь ш передових, дорогих, а т о м у о д и н и ч н и х , комп'ютерах свого часу.
Пізніше, після н а л е ж н о г о в і д п р а ц ю в а н н я технології і з д е ш е в л е н н я в и р о б н и ц т в а , вони
в и к о р и с т о в у в а л и с я в комп'ютерах^середнього класу, і н а р е ш т і сьогодні вони в повному
обсязі втілюються у р о б о ч и х с т а н ц і я х і п е р с о н а л ь н и х комп'ютерах.
423

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


з точки з о р у паралельної о б р о б к и інформації, п о ч и н а ю ч и п р а к т и ч н о з часу с т в о р е н н я
перших комп'ютерів.
Паралельна пам'ять та паралельна арифметика. Всі н а й п е р ш і к о м п ' ю т е р и ( E D S A C ,
E D V A C , U N I V A C ) м а л и послідовну п а м ' я т ь , із якої слова з ч и т у в а л и с я послідовно біт
за бітом. П е р ш и м к о м е р ц і й н о д о с т у п н и м к о м п ' ю т е р о м , що в и к о р и с т о в у в а в п а р а л е л ь ­
ну пам'ять і п а р а л е л ь н у а р и ф м е т и к у , став к о м п ' ю т е р I B M 701, я к и й п о с т у п и в на р и н о к
у 1953 році. В більш п о п у л я р н і й моделі I B M 704, що п о с т у п и л а на р и н о к у 1955 році,
крім названого, була в п е р ш е з а с т о с о в а н а п а м ' я т ь на ф е р и т о в и х с е р д е ч н и к а х і а п а р а т н и й
арифметичний пристрій з р у х о м о ю комою.
Незалежні п р о ц е с о р и в в е д е н н я - в и в е д е н н я . В п е р ш и х к о м п ' ю т е р а х п р о ц е с о р и не
лише о б р о б л я л и і н ф о р м а ц і ю , а й к е р у в а л и в в е д е н н я м - в и в е д е н н я м . П р о т е ш в и д к і с т ь
роботи н а й ш в и д ш о г о з о в н і ш н ь о г о п р и с т р о ю , а в ті часи це була м а г н і т н а стрічка, була
в 1000 разів м е н ш о ю ш в и д к о с т і п р о ц е с о р а , т о м у під час о п е р а ц і й в в е д е н н я / в и в е д е н н я
процесор ф а к т и ч н о п р о с т о ю в а в . У 1958 р. до к о м п ' ю т е р а I B M 704 п р и є д н а л и 6 неза­
лежних процесорів в в е д е н н я / в и в е д е н н я , щ о після о д е р ж а н н я к о м а н д від ц е н т р а л ь н о г о
процесора могли п р а ц ю в а т и п а р а л е л ь н о з н и м , а сам к о м п ' ю т е р п е р е й м е н у в а л и в I B M
709. Дана модель була д о с и т ь вдалою, п і д т в е р д ж е н н я м чого є те, що було п р о д а н о біля
400 її екземплярів, які з н а х о д и л и с ь в експлуатації б л и з ь к о 20 р о к і в .
Передбачення та р о з ш а р у в а н н я пам'яті. У 1961 році ф і р м а I B M з а к і н ч и л а р о з р о б к у
комп'ютера S T R E T C H , щ о м а в дві п р и н ц и п о в о в а ж л и в і о с о б л и в о с т і : п е р е д б а ч е н н я д л я
вибірки к о м а н д і р о з ш а р у в а н н я п а м ' я т і на два блоки д л я у з г о д ж е н н я н и з ь к о ї ш в и д к о с т і
вибірки з пам'яті та ш в и д к о с т і в и к о н а н н я операцій.
Конвеєр команд. Вперше к о н в е є р н и й п р и н ц и п в и к о н а н н я к о м а н д був в и к о р и с т а ­
ний у комп'ютері A T L A S , р о з р о б л е н о м у в М а н ч е с т е р с ь к о м у університеті в 1962 році.
Виконання к о м а н д р о з б и т о на 4 стадії: вибірка к о м а н д и , о б ч и с л е н н я адреси операнда,
вибірка о п е р а н д а і в и к о н а н н я операції. К о н в е є р и з а ц і я д о з в о л и л а з м е н ш и т и час в и к о ­
нання к о м а н д із 6 мкс до 1,6 мкс. С т в о р е н н я д а н о г о к о м п ' ю т е р а з р о б и л о в е л и ч е з н и й
вплив як на п о д а л ь ш и й р о з в и т о к архітектури к о м п ' ю т е р а , т а к і на р о з в и т о к с и с т е м н о г о
програмного з а б е з п е ч е н н я : у н ь о м у в п е р ш е в и к о р и с т а н а м у л ь т и п р о г р а м н а о п е р а ц і й н а
система, що в и к о р и с т о в у в а л а в і р т у а л ь н у п а м ' я т ь і систему п е р е р и в а н ь .
Незалежні операційні пристрої. В 1964 році фірма Control Data Corporation ( C D C )
при особистій участі одного з її фундаторів С е й м у р а К р е я випускає комп'ютер C D C -
6600 - перший комп'ютер, у я к о м у використовувалося декілька н е з а л е ж н и х операційних
пристроїв. Для п о р і в н я н н я із сьогоднішнім днем приведемо деякі характеристики цього
комп'ютера:
• час такту р і в н и й 100 не;
• п р о д у к т и в н і с т ь рівна 2-3 млн операцій за секунду;
• основна п а м ' я т ь р о з б и т а на 32 блоки по 4096 6 0 - р о з р я д н и х слів;
• цикл пам'яті р і в н и й 1 мкс;
• 10 н е з а л е ж н и х о п е р а ц і й н и х п р и с т р о ї в .
Комп'ютер C D C - 6 6 0 0 м а в в е л и к и й успіх н а ринку, с у т т є в о п о т і с н и в ш и к о м п ' ю т е р и
фірми I B M .
Конвеєрні н е з а л е ж н і о п е р а ц і й н і пристрої. В 1969 р о ц і ф і р м а C D C в и п у с к а є к о м п ' ю ­
тер CDC-7600 із вісьмома н е з а л е ж н и м и к о н в е є р н и м и о п е р а ц і й н и м и п р и с т р о я м и , т и м
424

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


рактеристики цього комп'ютера:
• такт р і в н и й 27,5 не;
• п р о д у к т и в н і с т ь рівна 10-15 м л н о п е р а ц і й за секунду;
• 8 конвеєрних операційних пристроїв;
• дворівнева пам'ять.
Матричні п р о ц е с о р и . В 1967 році були р о з п о ч а т і р о б о т и над с т в о р е н н я м матрично­
го п р о ц е с о р а I L L I A C IV, п р о е к т я к о г о п е р е д б а ч а в д о с я г н е н н я н а с т у п н и х характеристик:
256 п р о ц е с о р н и х елементів (ПЕ) - 4 к в а д р а н т и по 64 ПЕ, з м о ж л и в і с т ю реконфігурації
на 2 к в а д р а н т и по 128 П Е , а б о на 1 к в а д р а н т із 256 ПЕ, такт р і в н и й 40 не, продуктив­
ність рівна 1 млрд. о п е р а ц і й з р у х о м о ю к о м о ю за секунду. В якості п р и с т р о ю керування
був в и к о р и с т а н и й у н і в е р с а л ь н и й к о м п ' ю т е р із н е в е л и к о ю п р о д у к т и в н і с т ю . К о ж н и й ПЕ
м а в в л а с н и й А Л П з п о в н и м н а б о р о м к о м а н д та п а м ' я т ь ємністю 2К 6 4 - р о з р я д н и х слів
з ц и к л о м 350 не. К о м п ' ю т е р був в в е д е н и й в експлуатацію у 1974 році в складі лише 1
к в а д р а н т а , такт 80 не, р е а л ь н а п р о д у к т и в н і с т ь н а б л и з и л а с ь до 50 м л н операцій з рухо­
м о ю к о м о ю за секунду. О д н а к д а н и й п р о е к т с у т т є в о в п л и н у в на архітектуру наступних
к о м п ' ю т е р і в , п о б у д о в а н и х з а с х о ж и м п р и н ц и п о м , я к і дістали назву масивно-паралель-
н и х к о м п ' ю т е р і в із р о з п о д і л е н о ю п а м ' я т т ю . Ідея п о б у д о в и к о м п ' ю т е р і в ц ь о г о класу на­
ступна: б е р у т ь с я серійні м і к р о п р о ц е с о р и зі с в о є ю л о к а л ь н о ю п а м ' я т т ю та з'єднуються за
д о п о м о г о ю деякого к о м у н і к а ц і й н о г о середовища. П е р е в а г и такої архітектури наступні:
я к щ о п о т р і б н о п і д в и щ и т и п р о д у к т и в н і с т ь , т о з б і л ь ш у є т ь с я кількість процесорів, якщо
о б м е ж е н і фінанси а б о заздалегідь відома необхідна п р о д у к т и в н і с т ь , то легко підібрати
о п т и м а л ь н у к о н ф і г у р а ц і ю і т. п.
П р о т е є і с у т т є в и й недолік. С п р а в а в тому, що м і ж п р о ц е с о р н а в з а є м о д і я в комп'юте­
рах ц ь о г о класу йде н а б а г а т о п о в і л ь н і ш е , н і ж в і д б у в а є т ь с я л о к а л ь н е о п р а ц ю в а н н я даних
с а м и м и п р о ц е с о р а м и . С а м е т о м у н а п и с а т и е ф е к т и в н у п р о г р а м у для т а к и х комп'ютерів
д у ж е складно.
За ц и м п р и н ц и п о м були п о б у д о в а н і к о м п ' ю т е р и РЕРЕ, BSP, I C L D A P . До даного класу
м о ж н а т а к о ж віднести к о м п ' ю т е р и Intel Paragon, I B M SP1, Parsytec, у я к і й с ь мірі I B M SP2
і C R A Y T 3 D / T 3 E . До ц ь о г о ж к л а с у м о ж н а віднести і м е р е ж і комп'ютерів.
В е к т о р н о - к о н в е є р н і к о м п ' ю т е р и . У 1972 році С. К р е й з а л и ш а є ф і р м у C D C і засно­
вує власну к о м п а н і ю Cray Research, що у 1976 р. в и п у с к а є п е р ш и й векторно-конвеєр­
н и й к о м п ' ю т е р C R A Y - 1 з н а с т у п н и м и х а р а к т е р и с т и к а м и : час т а к т у р і в н и й 12,5 не, 12
к о н в е є р н и х о п е р а ц і й н и х п р и с т р о ї в , пікова п р о д у к т и в н і с т ь - 160 мільйонів операцій за
секунду, о с н о в н а п а м ' я т ь до І М с л о в а (слова 6 4 - р о з р я д н і ) , ц и к л п а м ' я т і р і в н и й 50 не. Го­
л о в н и м н о в о в в е д е н н я м є в и к о р и с т а н н я в е к т о р н и х к о м а н д , що п р а ц ю ю т ь із масивами
ц і л и х чисел і д о з в о л я ю т ь е ф е к т и в н о в и к о р и с т о в у в а т и к о н в е є р н і о п е р а ц і й н і пристрої, а
т а к о ж ієрархія пам'яті. Ієрархія п а м ' я т і п р я м о г о в і д н о ш е н н я до паралелізму не має, про­
те, б е з у м о в н о , н а л е ж а т ь до тих о с о б л и в о с т е й а р х і т е к т у р и комп'ютерів, що м а ю т ь велике
з н а ч е н н я для п і д в и щ е н н я їхньої п р о д у к т и в н о с т і ( з г л а д ж у в а н н я різниці м і ж тактом ро­
б о т и п р о ц е с о р а і ч а с о м в и б і р к и з п а м ' я т і ) . О с н о в н і рівні: регістри, кеш п а м ' я т ь , основна
п а м ' я т ь , д и с к о в а п а м ' я т ь . Ч а с в и б і р к и по р і в н я х п а м ' я т і від дискової до регістрів змен­
ш у є т ь с я , вартість у п е р е р а х у н к у на 1 слово (байт) р о с т е . В даний час подібна ієрархія
п і д т р и м у є т ь с я і на п е р с о н а л ь н и х к о м п ' ю т е р а х .
425

Паралельні комп'ютери із с п і л ь н о ю п а м ' я т т ю . З р о з в и т к о м архітектур та техноло­


гій в и р о б н и ц т в а компонентів к о м п ' ю т е р а , в т о м у числі пам'яті, з ' я в и в с я н о в и й клас
комп'ютерів - паралельні к о м п ' ю т е р и із спільною п а м ' я т т ю . Вся о с н о в н а п а м ' я т ь т а к и х
комп ютерів р о з д і л я є т ь с я декількома о д н а к о в и м и п р о ц е с о р а м и . Хоча кількість п р о ц е с о ­
рів, що м а ю т ь д о с т у п до спільної пам'яті, за ч и с т о т е х н і ч н и м и п р и ч и н а м и не м о ж н а з р о ­
бити в е л и к и м , до даного н а п р я м к у в х о д и т ь багато сучасних б а г а т о п р о ц е с о р н и х систем,
наприклад, к о м п ' ю т е р и HP Exemplar і Sun StarFire.
Зрозуміло, що в багатьох випадках у комп'ютерах використовується комбінація описаних
технічних рішень. З декількох процесорів (традиігійних або векторно-конвеєрних) і спільної
для нихпам'яті формується обчислювальний вузол. Я к щ о отриманої обчислювальної п о т у ж ­
ності недостатньо, то об'єднується декілька таких вузлів ш в и д к і с н и м и к а н а л а м и зв'язку.
Подібну архітектуру називають кластерною, і за т а к и м п р и н ц и п о м побудовані комп'ютери
C R A Y SV1, HP Exemplar, Sun StarFire, N E C SX-5, останні моделі I B M SP2 й інші.
С и с т е м и з м а с о в о ю п а р а л е л ь н о ю о б р о б к о ю і н ф о р м а ц і ї . Після початкового доміну­
вання систем, що використовували повільні процесори з складною системою команд та
розшаровану пам'ять, фірми Sun, HP, D E C , SGI, N C R / A T T , Tandem, Pyramid, I B M та C R I
розпочали випуск багатопроце­
сорних систем, здатних до м а с ш -
табування, що базуються на п р о ­ ©fiO •as:. Вузол
цесорах із складною системою
команд. Наведемо приклади су­
часних систем цього класу.
С у п е р к о м п ' ю т е р Intel Parag­
on. На рис. 12.1. п о д а н о органі­ Шнна гин-яті (Б4-bit, 5D MHz)
зацію с у п е р к о м п ' ю т е р а Intel Раг^
agon із т а к з в а н о ю а р х і т е к т у р о ю
на основі п е р е с и л а н н я п о в і д о ­
млень. С у п е р к о м п ' ю т е р п о б у д о ­
Контролер
пам'яті Su пдп
Драйвер
вано я к т р и в и м і р н е о б ' є д н а н н я
м н о ж и н и о к р е м и х вузлів (топо­ Основна
логія гіперкуба). Кожен вузол пам'ять
містить два а б о більше п р о ц е с о ­
рів i860, які у т в о р ю ю т ь систему з
спільною п а м ' я т т ю , та в б у д о в а н у / І / S a bits,
п і д т р и м к у з о в н і ш н ь о ї м е р е ж і із * 75 MHz
швидкодією о б м і н у з м е р е ж е ю
175 MB за секунду. Кожен вузол Сітка
має ще і н д и в і д у а л ь н и й з в ' я з о к із процесорних
вузлів
власною підсистемою п а м ' я т і з
в и к о р и с т а н н я м прямого доступу
та ш и н и кеш пам'яті. Це дозволяє
ефективно пересилати великі па­
т
кети інформації від кожного вузла Рис. 12.1. Суперкомп'ютер Intel Paragon
до мережі та зворотно. П р о д у к - (подано двовимірну проекцію тривимірної мережі)
426

тивність системи складає 143 G F L O P S на тесті L I N P A C K (матричні тести лінійної алгебри),


що на порядок перевищує продуктивність м а ш и н C R A Y .
С у п е р к о м п ' ю т е р Blue Gene ф і р м и I B M . Н а й ш в и д ш и й н а 2007 рік суперкомп'ютер,
с т в о р е н н я я к о г о фірма I B M п р о г о л о с и л а у грудні 1999 року, о т р и м а в назву Blue Gene.
Він с п р о м о ж н и й в и к о н у в а т и п о н а д один к в а д р и л ь й о н о п е р а ц і й на секунду (1PFLOPS =
1000 T F L O P S = 1000000 G F L O P S ) . Blue Gene є м а й ж е в м і л ь й о н разів п р о д у к т и в н і ш и м від
ПК. І є р а р х і ч н и й д и з а й н Blue Gene наведено на рис. 12.2.

Рис. 12.2. Ієрархічний дизайн Blue Gene

Blue Gene складено з м і л ь й о н а п р о ц е с о р і в , к о ж н и й з я к и х м а є продуктивність 1


G F L O P S . 32 т а к и х н а д ш в и д к и х п р о ц е с о р и і н т е г р о в а н о до одного к р и с т а л у (32 G F L O ­
PS). К о м п а к т н а (два ф у т и на два ф у т и ) плата в м і щ у є 64 щ о й н о з а з н а ч е н и х кристали (2
T F L O P S ) . А п а р а т н а ч а с т и н а т а к о г о д р у к о в а н о г о вузла є п р о д у к т и в н і ш о ю від відомого
рекордсмена, с у п е р к о м п ' ю т е р а A S C I м і н і с т е р с т в а е н е р г е т и к и СІЛА, я к и й з а й м а є 8000
к в а д р а т н и х ф у т і в площі. 11 д р у к о в а н и х вузлів з б и р а ю т ь до одної м о н т а ж н о ї 6-ти футо­
вої ш а ф о в о ї конструкції, я к а м а є п р о д у к т и в н і с т ь 16 T F L O P S . Фінальну конструкцію, що
з а й м а є площу, м е н ш у від 2000 кв. футів, у т в о р е н о с п о л у ч е н н я м 64 ш а ф . Разом отриму­
ється п р о д у к т и в н і с т ь 1 P F L O P S = 1000 T F L O P S .

12.2. Вибір кількості процесорів у багатопроцесорній системі


П о т р і б н о відзначити, що з б і л ь ш е н н я кількості п р о ц е с о р і в у багатопроцесорній сис­
темі не з а в ж д и п р о п о р ц і й н о з м е н ш у є час в и р і ш е н н я задачі. На рис. 12.3 наведено за­
л е ж н і с т ь п р и с к о р е н н я від кількості з а д і я н и х п р о ц е с о р і в при р о з в ' я з а н н і однієї задачі
м о л е к у л я р н о ї д и н а м і к и на б а г а т о п р о ц е с о р н і й системі Intel Paragon. П а р а м е т р о м є версія
п р о г р а м н о г о коду. Бачимо, що м о н о т о н н е з р о с т а н н я п р и с к о р е н н я д о с я г н у т о лише на
другій версії п а р а л е л ь н о ї п р о г р а м и .
427

Прискорення

Версія 3

Версія 2
-

> Версія 1

50 100
КІЛЬКІСТЬ П р о ц е с о р і в

Рис. 12.3. Прискорення програми моделювання процесів молекулярної динаміки


для системи Intel Paragon

Перша версія п р о г р а м и п о г а н о піддалася р о з п а р а л е л ю в а н н ю . З н е в е л и к и м и в и т р а т а ­


ми, шляхом д е т а л ь н і ш о г о н а л а г о д ж у в а н н я коду ф р а г м е н т і в п р о г р а м и , щ о о п р а ц ь о в у в а ­
лися о к р е м и м и п р о ц е с о р а м и , о т р и м а н о другу версію. Та л и ш е р а д и к а л ь н е п о к р а щ е н н я
програмної ч а с т и н и реалізації і н ф о р м а ц і й н и х обмінів о к р е м и м и п р о ц е с о р а м и н а д а л о
остаточний варіант за версією 3, із н а б л и ж е н н я м до л і н і й н о г о п р и с к о р е н н я .
З р о з у м і л и м є н а м а г а н н я п р о г р а м і с т і в з а б е з п е ч и т и лінійне п р и с к о р е н н я ( т е о р е т и ч ­
на межа), коли із з б і л ь ш е н н я м у п р а з і в кількості з а д і я н и х п р о ц е с о р і в т а к о ж у п разів
зменшується час в и к о н а н н я п р о г р а м и . О д н а к це не з а в ж д и в д а є т ь с я , і п р и ч и н у цього
пояснює закон Амдала.
З а к о н А м д а л а і й о г о н а с л і д к и . П р и п у с т и м о , що у деякій п р о г р а м і частка о п е р а ц і й ,
які потрібно в и к о н у в а т и послідовно, д о р і в н ю є {, де 0<і"<1 (при ц ь о м у ч а с т к а р о з у м і є т ь с я
не по с т а т и ч н о м у числу р я д к і в коду, а по ч и с л у р е а л ь н о в и к о н у в а н и х о п е р а ц і й ) . К р а й ­
ні випадки в з н а ч е н н я х і відповідають ц і л к о м п а р а л е л ь н и м ((=0) і ц і л к о м п о с л і д о в н и м
(ґ=1) п р о г р а м а м . О т о ж , д л я того, щ о б о ц і н и т и , я к е п р и с к о р е н н я Б м о ж е б у т и о т р и м а н е
на комп'ютері з р п р о ц е с о р а м и при д а н о м у значенні {, м о ж н а с к о р и с т а т и с я з а к о н о м А м ­
дала, згідно з я к и м Б = р / ( 1 + ( р - 1 ) і " ) . П р и в е л и к и х з н а ч е н н я х р п р и с к о р е н н я Б п р я м у є до
величини 1/£ Т обто, відповідно до ц ь о г о закону, я к щ о 9/10 п р о г р а м и з д і й с н ю є т ь с я па­
ралельно, а 1/10, як і р а н і ш е , послідовно, то п р и с к о р е н н я б і л ь ш н і ж у 10 р а з і в о д е р ж а т и
в п р и н ц и п і н е м о ж л и в о поза з а л е ж н і с т ю від якості реалізації п а р а л е л ь н о ї ч а с т и н и коду
і кількості в и к о р и с т о в у в а н и х п р о ц е с о р і в (ясно, що п р и с к о р е н н я в 10 р а з і в д о с я г а є т ь с я
лише в т о м у випадку, коли час в и к о н а н н я п а р а л е л ь н о ї ч а с т и н и д о р і в н ю є 0).
П о д и в и м о с я на п р о б л е м у з іншої с т о р о н и : а я к у ж ч а с т и н у коду т р е б а п р и с к о р и т и
(а значить і п о п е р е д н ь о д о с л і д ж у в а т и ) , щ о б о д е р ж а т и з а д а н е п р и с к о р е н н я ? Відповідь
можна з н а й т и в наслідку із з а к о н у Амдала: для того, щ о б п р и с к о р и т и в и к о н а н н я п р о ­
грами в q разів необхідно п р и с к о р и т и не менше, ніж у q разів (1-1/с7)-у ч а с т и н у п р о г р а м и .
Отже, я к щ о є б а ж а н н я п р и с к о р и т и п р о г р а м у в 100 разів у п о р і в н я н н і з її послідовним
варіантом, то необхідно в 100 разів п р и с к о р и т и 99% коду, що м а й ж е з а в ж д и складає зна­
чну частину програми. Таким ч и н о м , я к щ о після оцінки з а к л а д е н о г о в п р о г р а м і алго­
ритму стало зрозуміло, що частка послідовних операцій велика, то на значне прискорення
428

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


алгоритму.
У з в ' я з к у з н а в е д е н и м и п р о б л е м а м и ч и с л о п р о ц е с о р і в в р е а л ь н и х багатопроцесор­
н и х системах, які о р і є н т о в а н і в о с н о в н о м у на в и р і ш е н н я с к л а д н и х о д и н и ч н и х задач, є
н е в е л и к и м . І н ф о р м а ц і ю п р о кількість п р о ц е с о р і в т а к и х систем подає рис. 12.4.

9
S U N Fire Х 4 6 0 0 Server SUN Fire X4500 Server
8

. 7
9
о
в 6
SGI ® Altix ® 450
О
а 5
з- S U N Fire T 1 0 0 0 S U N Blade 6000
о
а. S U N Fire X 4 2 0 0 S e r v e r

л S U N * F i r e X 4 2 0 0 *Server
I-
S U N Fire X 4 2 0 0 Server
о SGI ® Altix ® 4000
•я 3
Л HP Pro Liant DL 1 4 0 G 3 IBM eServer Cluster 1350
5
2
Netra C P 3 0 6 0 U l t r a S P A R C T1 A T C A Blade
1

0.00 0.50 1.00 1.50 2.00 2.50 3.00 3.50 4.00


Частота процесора, ГГц
Рис. 12.4. Дані про реальні багатопроцесорні системи

П о т р і б н о відзначити, що п р и с т в о р е н н і систем із м а с о в о ю п а р а л е л ь н о ю обробкою


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

12.3. Багатопотокова обробка інформації


З в и ч а й н о , п е р е р а х о в а н і в и щ е підходи д о п і д в и щ е н н я п р о д у к т и в н о с т і комп'ютерних
систем, в и к о р и с т о в у ю ч и п а р а л е л ь н у о б р о б к у і н ф о р м а ц і ї , не в и к л ю ч а ю т ь необхідність
п і д в и щ е н н я п р о д у к т и в н о с т і о д н о п р о ц е с о р н и х систем ш л я х о м н а р о щ у в а н н я ресурсів
п р о ц е с о р а , н а п р и к л а д , ш л я х о м н а р о щ у в а н н я є м н о с т і кеш пам'яті т а д о б а в л е н н я нових
о п е р а ц і й н и х п р и с т р о ї в . Хоча з р о з у м і л о , щ о ц е т я г н е з а с о б о ю з р о с т а н н я кількості тран­
з и с т о р і в та п л о щ і кристалу, у с к л а д н е н н я п р о ц е с о р а , і відповідно, вартості.
І н ш и м підходом є п і д в и щ е н н я е ф е к т и в н о с т і в и к о р и с т а н н я н а я в н и х ресурсів комп'ю­
т е р н и х систем з о д н и м та д е к і л ь к о м а п р о ц е с о р а м и . Існує декілька дешевших, ніж масове
р о з п а р а л е л ю в а н н я в а р і а н т і в , які т а к о ж д о з в о л я ю т ь п р и с к о р и т и о б ч и с л е н н я , а саме:
• Б а г а т о п р о ц е с о р н і с т ь на о д н о м у к р и с т а л і (Chip Multiprocessing). Два процесорні
я д р а ф і з и ч н о р о з т а ш о в а н і на о д н о м у кристалі із в и к о р и с т а н н я м спільної або розподі­
леної кеш пам'яті. П р и р о д н о , що р о з м і р к р и с т а л а о т р и м у ю т ь д о с и т ь в е л и к и м , що є при­
ч и н о ю великої в а р т о с т і ц ь о г о к р и с т а л а . В б а г а т о п р о ц е с о р н і й системі м о ж у т ь функціо­
н у в а т и декілька т а к и х к р и с т а л і в .
429

• Багатопотокова о б р о б к а з к в а н т у в а н н я м часу (Time-Slice Multithreading). П р о ­


цесор п е р е м и к а ю т ь п о м і ж п р о г р а м н и м и п о т о к а м и через фіксовані п р о м і ж к и часу. На­
кладні в и т р а т и часом в и х о д я т ь д о с и т ь з н а ч н и м и , о с о б л и в о я к щ о я к и й - н е б у д ь п р о ц е с
знаходиться в стані о ч і к у в а н н я
• Багатопотокова о б р о б к а з п е р е м и к а н н я м за п о д і я м и (Switch-on-Event Multithre­
ading). П е р е м и к а н н я задач при н а я в н о с т і т р и в а л и х пауз, н а п р и к л а д " н е в л у ч е н ь " до кеш
пам'яті, велике ч и с л о я к и х п р и т а м а н н е с е р в е р н и м а п л і к а ц і я м . Тут процес, що чекає на
завантаження д а н и х з п о р і в н я н о повільної о с н о в н о ї п а м ' я т і до кеш пам'яті, п р и г а л ь ­
мовують, в и в і л ь н я ю ч и т и м с а м и м р е с у р с и п р о ц е с о р а н а к о р и с т ь і н ш и х процесів. П р о ­
те багатопотокова о б р о б к а з п е р е м и к а н н я м за п о д і я м и , як і б а г а т о п о т о к о в а о б р о б к а з
к в а н т у в а н н я м часу, н е з а в ж д и д о з в о л я є д о с я г т и о п т и м а л ь н о г о в и к о р и с т а н н я ресурсів
процесора, з о к р е м а через п о м и л к и в передбаченні р о з г а л у ж е н ь , існуючі з а л е ж н о с т і по­
між к о м а н д а м и т о щ о
• Одночасна багатопотокова о б р о б к а (Simultaneous Multithreading). Тут п р о г р а м ­
ні потоки в и к о н у ю т ь с я на о д н о м у п р о ц е с о р і "одночасно", т о б т о без п е р е к л ю ч е н н я м і ж
ними. Ресурси п р о ц е с о р а р о з п о д і л я ю т ь с я д и н а м і ч н о , з а п р и н ц и п о м "не в и к о р и с т о в у є ш
- віддай і н ш о м у "
Одночасна багатопотокова о б р о б к а п о к л а д е н а в о с н о в у технології гіперпотокової
обробки (Hyper-Threading) ф і р м и Intel, я к у р о з г л я н е м о д е т а л ь н і ш е
Багатопотокові о б ч и с л е н н я в и к о р и с т о в у ю т ь с я не л и ш е в серверах, де багатопотоко-
вість існує п е р в и н н о , але і в р о б о ч и х с т а н ц і я х і настільних п е р с о н а л ь н и х комп'ютерах.
Потоки м о ж у т ь в і д н о с и т и с я як до однієї, так і до р і з н и х п р и к л а д н и х п р о г р а м , але м а й ж е
завжди а к т и в н и х потоків більше від одного (аби п е р е к о н а т и с я в цьому, д о с т а т н ь о у W i ­
ndows 20007ХР в і д ч и н и т и Task Manager та у в і м к н у т и в і д б и т т я н и м числа в и к о н у в а н и х
потоків). Р а з о м з т и м відомо, що с т а н д а р т н и й п р о ц е с о р м о ж е о д н о ч а с н о о п р а ц ь о в у в а т и
лише один з декількох існуючих потоків, т о м у і з м у ш е н и й п о с т і й н о п е р е м и к а т и с я п о м і ж
цими п о т о к а м и
Технологію гіперпотокової о б р о б к и р е а л і з о в а н о в процесорі Intel Xeon MP (Foster
M P ) , на я к о м у і відбувалося дослідження е ф е к т и в н о с т і цієї технології. П р о ц е с о р Xeon MP
використовує п р и т а м а н н е Pentium 4 я д р о Willamette, містить 256 KB кеш пам'яті другого
рівня L2, 512 KB кеш пам'яті третього р і в н я L3, та підтримує ф у н к ц і о н у в а н н я в ч о т и р и -
процесорних конфігураціях. П і д т р и м к а технології гіперпотокової о б р о б к и т а к о ж присут­
ня у процесорі для р о б о ч и х станцій Intel Xeon (ядро Prestonia, 512 KB кеш пам'яті другого
рівня L2), що п о с т у п и в на р и н о к дещо р а н і ш е від п р о ц е с о р а Xeon M P . Далі розглянемо
можливості технології гіперпотокової о б р о б к и на прикладі саме п р о ц е с о р а Intel Xeon.
На рис. 12.5 а п о к а з а н о з а в а н т а ж е н і с т ь п р о ц е с о р і в к о м п ' ю т е р н о ї системи, я к а скла­
дається з двох с у п е р с к а л я р н и х п р о ц е с о р і в . К о ж е н п р о ц е с о р м о ж е в и к о н у в а т и по 3 ко­
манди в о д н о м у циклі. Незадіяні ( п о з н а ч е н о білим) п р я м о к у т н и к и свідчать п р о нео­
п т и м а л ь н у утилізацію с и с т е м н и х р е с у р с і в В той же ж час технологія гіперпотокової
о б р о б к и не л и ш е д о з в о л я є о п р а ц ь о в у в а т и п а р а л е л ь н о декілька потоків, але і з м е н ш у є
при ц ь о м у наявне число н е з а д і я н и х в и к о н а в ч и х ч а с о в и х інтервалів. На рис. 12.5 b по­
казано з а в а н т а ж е н і с т ь п р о ц е с о р і в к о м п ' ю т е р н о ї системи, я к а т а к о ж складається з двох
фізичних процесорів, та в якій в и к о р и с т о в у є т ь с я технологія гіперпотокової о б р о б к и .
Кожен з процесорів т у т о п р а ц ь о в у є по два п о т о к и інформації, що д о з в о л и л о н а б л и з и т и
систему до пікової п р о д у к т и в н о с т і .
430

a b

Рис. 12.5. Завантаженість процесорів комп'ютерної системи, яка складається


з двох суперскалярних процесорів без використання технологіїгіперпотоковоїобробки (а)
та з використанням технології гіперпотокової обробки (Ь)

Технологія г і п е р п о т о к о в о ї о б р о б к и ґ р у н т у є т ь с я на тому, що одночасно тільки час­


т и н а р е с у р с і в п р о ц е с о р а в и к о р и с т о в у є т ь с я на о п р а ц ю в а н н я п р о г р а м н о г о коду. Не ви­
к о р и с т о в у в а н і р е с у р с и м о ж н а з а в а н т а ж и т и і н ш о ю р о б о т о ю , н а п р и к л а д , задіяти н а пара­
лельне в и к о н а н н я ще о д н о г о додатку (або і н ш о г о п о т о к у з того ж додатку). З а р а д и цього
в о д н о м у ф і з и ч н о м у п р о ц е с о р і Intel Xeon ф о р м у ю т ь два логічні п р о ц е с о р и (LP - Logical
Processor), що п о д і л я ю т ь п о м і ж с о б о ю о б ч и с л ю в а л ь н і р е с у р с и єдиного фізичного про­
цесора. О п е р а ц і й н а система та п р и к л а д н а п р о г р а м а " в і д ч у в а ю т ь " саме два логічні про­
ц е с о р и та с п р о м о ж н і р о з п о д і л я т и р о б о т у м і ж н и м и так само, як і у в и п а д к у повноцінної
д в о п р о ц е с о р н о ї системи. Поділ р е с у р с і в (зокрема, в и к о н а в ч и х вузлів) п о м і ж двома по­
т о к а м и п о д а н о на рис. 12.5b.
П о т р і б н о відзначити, що технологією гіперпотокової о б р о б к и передбачено, аби при
н а я в н о с т і л и ш е о д н о г о а к т и в н о г о п о т о к у д о з в о л и т и й о м у в и к о н у в а т и с я з швидкоді­
єю, як і на з в и ч а й н о м у п р о ц е с о р і , т о б т о щ о б е ф е к т и в н і с т ь в и к о р и с т а н н я процесора не
з м е н ш у в а л а с я . З а р а д и ц ь о г о у п р о ц е с о р і передбачено два р е ж и м и р о б о т и : однозадачний
(ОЗ) та б а г а т о з а д а ч н и й (БЗ). У р е ж и м і ОЗ а к т и в н и м є л и ш е один логічний процесор,
я к и й без о б м е ж е н ь к о р и с т у є т ь с я н а я в н и м и р е с у р с а м и . І н ш и й логічний п р о ц е с о р призу­
п и н е н о к о м а н д о ю H A L T . Із п о я в о ю другого п р о г р а м н о г о потоку логічний п р о ц е с о р , що
не був з а д і я н и й , а к т и в у є т ь с я (за д о п о м о г о ю п е р е р и в а н н я п о т о ч н о г о стану H A L T ) . При
ц ь о м у ф і з и ч н и й п р о ц е с о р п е р е м и к а є т ь с я д о с т а н у БЗ. П р и г а л ь м о в у в а н н я незадіяних
логічних п р о ц е с о р і в к о м а н д о ю H A L T п о к л а д е н о на о п е р а ц і й н у систему, яка, до речі,
і відповідає за таке ж ш в и д к е в и к о н а н н я одного потоку, як і у в и п а д к у без використання
технології Hyper-Threading.
Для к о ж н о г о з д в о х л о г і ч н и х п р о ц е с о р і в зберігають так з в а н и й архітектурний стан
(Architecture State), я к и й складено із станів регістрів різного т и п у - загального призна­
ч е н н я , керуючих, регістрів к о н т р о л е р а п е р е р и в а н ь і с л у ж б о в и х (рис. 12.6). У кожного
логічного п р о ц е с о р а є свій к о н т р о л е р п е р е р и в а н ь і м н о ж и н а регістрів, для коректної
р о б о т и з я к и м и введена т а б л и ц я а л ь т е р н а т и в н и х назв регістрів, яка відслідковує від-
431

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

Архітектурний стан Архітектурний стан

Архітектурний стан Архітектурний стан

Виконавчі ресурси Виконавчі ресурси


процесора процесора

Системна шина Системна шина

а Ь
Рис. 12.6. Традиційна двопроцесорна система (а) та альтернативна система
з підтримкою технологіїгіперпотоковоїобробки (Ь)

П р и п а р а л е л ь н о м у о п р а ц ю в а н н і д в о х потоків п і д т р и м у є т ь с я вміст д в о х л і ч и л ь н и к і в
команд. П е р е в а ж н а частка к о м а н д о т р и м у є т ь с я з таблиці Trace Cache (ТС), де ці к о м а н ­
ди зберігають в д е к о д о в а н о м у ( т р а н с л ь о в а н о м у до р і в н я м і к р о о п е р а ц і й ) виді. Доступ
до ТС о б и д в а активні логічні п р о ц е с о р и о т р и м у ю т ь за чергою, через такт. У той же час,
коли а к т и в н и м є л и ш е один логічний п р о ц е с о р , він о т р и м у є м о н о п о л ь н и й д о с т у п до
ТС, без чергування за т а к т а м и . Так с а м о в і д б у в а є т ь с я і д о с т у п до п а м ' я т і команд, коли
треба о п р а ц ю в а т и складну команду, що не м а є д и н а м і ч н о к о м п і л ь о в а н о г о варіанту для
подання на безпосереднє в и к о н а н н я . Б у ф е р и п е р е т в о р е н н я з передісторією I T L B (In­
struction Translation Look-aside Buffer), задіяні за у м о в и відсутності необхідних к о м а н д
у кеш п а м ' я т і команд, дублюються і п о с т а ч а ю т ь к о м а н д и за п р а в и л о м "кожен д л я свого
потоку". Блок декодування к о м а н д є п о д і л ю в а н и м і у випадку, коли п о т р і б н е декоду­
в а н н я к о м а н д для обох потоків, обслуговує їх за чергою ( з н о в у - т а к и через такт). Блоки
черги м і к р о о п е р а ц і й та їх р о з м і щ е н н я поділено навпіл, аби р о з п о д і л и т и елементи д л я
кожного логічного процесора. Блоки диспетчерів у кількості 5 ш т у к о п р а ц ь о в у ю т ь ч е р ­
ги д е к о д о в а н и х команд, н е з в а ж а ю ч и на п р и н а л е ж н і с т ь до LP0 а б о L P 1 , і с п р я м о в у ю т ь
команди на в и к о н а н н я цільовим в и к о н а в ч и м блокам з а л е ж н о від готовності до в и к о н а н ­
ня операндів к о м а н д і наявності вільного стану ц і л ь о в и х в и к о н а в ч и х блоків (динамічне
в и к о н а н н я ) . Кеш пам'яті усіх рівнів (L1/L2 д л я Хеоп, а т а к о ж L3 д л я Xeon M P ) є цілком
поділюваними п о м і ж двома л о г і ч н и м и п р о ц е с о р а м и , п р о т е д л я з а б е з п е ч е н н я когерент­
ності (цілісності) д а н и х записи до буферів п е р е т в о р е н н я з передісторією D T L B (Data
Translation Look-aside Buffer) з а б е з п е ч у ю т ь с я д е с к р и п т о р а м и у вигляді ідентифікаторів
логічних процесорів.
Таким ч и н о м , к о м а н д и обох логічних п р о ц е с о р і в м о ж н а в и к о н у в а т и одночасно на
ресурсах одного фізичного п р о ц е с о р а , п р и ч о м у ці р е с у р с и поділено на ч о т и р и наступні
класи: дубльовані, цілком поділювані, із д е с к р и п т о р а м и елементів, д и н а м і ч н о поділю­
вані з а л е ж н о від р е ж и м у р о б о т и : о д н о з а д а ч н и й р е ж и м п е р ш о г о а б о другого логічного
процесора чи багатозадачний р е ж и м .
Більшість п р и к л а д н и х п р о г р а м , що о т р и м у ю т ь п р и с к о р е н н я у б а г а т о п р о ц е с о р н и х
системах, м о ж у т ь т а к о ж п р и с к о р ю в а т и с я і на п р о ц е с о р і із у в і м к н у т и м р е ж и м о м гіпер-
432

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


Н а п р и к л а д , я к щ о один п р о ц е с з н а х о д и т ь с я в стані о ч і к у в а н н я , то він с п р о м о ж н и й за­
х о п и т и усі р е с у р с и ф і з и ч н о г о п р о ц е с о р а , п е р е ш к о д ж а ю ч и т и м с а м и м ф у н к ц і о н у в а н н ю
другого логічного п р о ц е с о р а . Т а к и м ч и н о м , п р о д у к т и в н і с т ь п р и в и к о р и с т а н н і техноло­
гії гіперпотокової о б р о б к и м о ж е іноді й з н и ж у в а т и с я (до 20%).
Ще однією м е т о ю реалізації технології гіперпотокової о б р о б к и було зведення до
м і н і м у м у з р о с т а н н я числа т р а н з и с т о р і в , п л о щ і к р и с т а л а та е н е р г о с п о ж и в а н н я при по­
м і т н о м у з р о с т а н н і п р о д у к т и в н о с т і . І це з а в д а н н я в д а л о с я в и к о н а т и . Додання до Хеоп/
X e o n - М Р п і д т р и м к и технології гіперпотокової о б р о б к и з б і л ь ш и л о п л о щ у кристала т а
е н е р г о с п о ж и в а н н я л и ш е на 5%.
З а г а л о м е ф е к т и в н і с т ь б а г а т о п о т о к о в о ї технології п і д т в е р д ж у є т ь с я з р о с т а н н я м про­
д у к т и в н о с т і . Н а с т у п н и м р и с у н к о м (рис. 12.7) п о д а н о п о р і в н я л ь н у п р о д у к т и в н і с т ь , що
з а б е з п е ч у є д в о п р о ц е с о р н а система без в и к о р и с т а н н я багатопотокової технології та із
в и к о р и с т а н н я м цієї технології

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

Перший процесор Другий процесор


Рис.12.7. Продуктивність двопроцесорної системи залежно від кількості процесорів та залежно
від використання (невикористання) технології гіперпотокової обробки (процесор Intel' Хеоп")

Б а ч и м о з р о с т а н н я п р о д у к т и в н о с т і (темний колір) при в и к о р и с т а н н і другого процесо­


ра в п о р і в н я н н і із б а з о в и м її рівнем для одного задіяного процесора, та додатковий при­
ріст п р о д у к т и в н о с т і за р а х у н о к у в і м к н е н н я багатопотокової о б р о б к и (світлий колір).

12.4. Класифікація паралельних комп'ютерних систем

12.4.1. Класифікація Шора


О д н а з п е р ш и х к л а с и ф і к а ц і й к о м п ' ю т е р н и х систем була з а п р о п о н о в а н а Д. Шором на
п о ч а т к у 70-х р о к і в . Вона цікава т и м , що є с п р о б о ю в и д і л е н н я т и п о в и х способів компо­
н у в а н н я к о м п ' ю т е р н и х систем на основі фіксованого числа б а з о в и х блоків: пристрою
к е р у в а н н я , а р и ф м е т и к о - л о г і ч н о г о п р и с т р о ю , пам'яті к о м а н д і пам'яті даних. Додатково
передбачається, що вибірка з п а м ' я т і д а н и х м о ж е здійснюватися словами, т о б т о вибира­
ються всі р о з р я д и одного слова, і/або б і т о в и м ш а р о м - по о д н о м у р о з р я д у з однієї і тієї ж
позиції к о ж н о г о слова (іноді ці два с п о с о б и н а з и в а ю т ь г о р и з о н т а л ь н о ю і вертикальною
433

вибірками відповідно). З в и ч а й н о ж , при аналізі даної к л а с и ф і к а ц і ї т р е б а р о б и т и з н и ж к у


на час її появи, оскільки передбачити в е л и к у р і з н о м а н і т н і с т ь п а р а л е л ь н и х систем тепе­
рішнього часу тоді було у п р и н ц и п і н е м о ж л и в о . О т ж е , згідно з к л а с и ф і к а ц і є ю Д. Шора,
всі комп'ютери р о з б и в а ю т ь с я на шість класів, п е р ш и й з я к и х дістав н а з в у м а ш и н и І,
другий - м а ш и н и II, і т. д.
На поданих н и ж ч е р и с у н к а х позначено: ПІ - п а м ' я т ь к о м а н д (інструкцій), ПК - п р и ­
стрій керування, А Л П - а р и ф м е т и к о - л о г і ч н и й п р и с т р і й , ПД - п а м ' я т ь даних.
М а ш и н а І - це к о м п ' ю т е р н а система, я к а м і с т и т ь п р и с т р і й к е р у в а н н я , а р и ф м е т и к о -
логічний пристрій, п а м ' я т ь к о м а н д і п а м ' я т ь д а н и х із п о с л і в н о ю вибіркою (рис. 12.8).

пі

і —
ПК
J Паралельний

і і
и

АЛП

,111
Послівно- 1

і секційна
! І пд
І J

Рис. 12.8. Машина І

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


лельної о б р о б к и в а р и ф м е т и к о - л о г і ч н о м у пристрої. С к л а д А Л П спеціально не в к а з у є т ь ­
ся, що допускає н а я в н і с т ь декількох ф у н к ц і о н а л ь н и х п р и с т р о ї в , в т о м у числі к о н в е є р ­
ного типу. За ц и м и м і р к у в а н н я м и до д а н о г о класу п о т р а п л я ю т ь як класичні послідовні
м а ш и н и ( I B M 701, PDP-11, V A X 11/780), так і к о н в е є р н і с к а л я р н і ( C D C 7600) і в е к т о р н о -
конвеєрні (CRAY-1).
Я к щ о в м а ш и н і І здійснювати в и б і р к у не по словах, а по о д н о м у р о з р я д у з усіх слів,
то о д е р ж и м о м а ш и н у II (рис. 12.9). С л о в а в п а м ' я т і даних, як і р а н і ш е , р о з т а ш о в у ю т ь с я
г о р и з о н т а л ь н о , але д о с т у п до н и х з д і й с н ю є т ь с я інакше. Я к щ о в м а ш и н і І відбувається
послідовна о б р о б к а слів п р и п а р а л е л ь н і й о б р о б ц і р о з р я д і в , то в м а ш и н і II - послідовна
о б р о б к а бітових шарів при паралельній о б р о б ц і м н о ж и н и слів.

ПІ

І
ПК

т Розрядно-
Послідовний сшуійма
АПП пд

Рис. 12.9. Машина II

С т р у к т у р а м а ш и н и II л е ж и т ь в основі а с о ц і а т и в н и х к о м п ' ю т е р і в ( н а п р и к л а д , так п о ­


будовано ц е н т р а л ь н и й п р о ц е с о р м а ш и н и БТАРчАМ), п р и ч о м у ф а к т и ч н о такі к о м п ' ю т е р и
мають в складі а р и ф м е т и к о - л о г і ч н о г о п р и с т р о ю м н о ж и н у п о р і в н я н о п р о с т и х о п е р а ц і й -
434

них п р и с т р о ї в п о р о з р я д н о ї о б р о б к и даних. І н ш и м п р и к л а д о м с л у ж и т ь м а т р и ч н а систе­


ма I C L D A P , я к а м о ж е о д н о ч а с н о о б р о б л я т и по о д н о м у р о з р я д у з 4096 слів.
Я к щ о об'єднати п р и н ц и п и побудови м а ш и н І і II, то одержимо м а ш и н у III (рис. 12.10). Ця
машина має два арифметико-логічні п р и с т р о ї - г о р и з о н т а л ь н и й і в е р т и к а л ь н и й , а також
м о д и ф і к о в а н у п а м ' я т ь даних, я к а з а б е з п е ч у є д о с т у п як до слів, так і до бітових шарів.
Вперше ідею п о б у д о в и т а к и х систем у 1960 р о ц і в и с у н у в У Шуман, що н а з и в а в їх ортого­
н а л ь н и м и ( я к щ о п а м ' я т ь п р е д с т а в л я т и я к м а т р и ц ю слів, т о доступ д о даних здійснюєть­
ся в н а п р я м і , " о р т о г о н а л ь н о м у " т р а д и ц і й н о м у - не по словах (рядках), а по бітових шарах
(стовпцях)). У принципі, як м а ш и н у S T A R A N , так і I C L D A P можна запрограмувати на ви­
конання функцій м а ш и н и III, але о с к і л ь к и в о н и не м а ю т ь о к р е м и х А Л П для о б р о б к и слів
і бітових шарів, віднести їх до д а н о г о класу не м о ж н а . П о в н о п р а в н и м и представниками
м а ш и н класу III є о б ч и с л ю в а л ь н і с и с т е м и сімейства O M E N - 6 0 фірми Sanders Associates,
побудовані в п р я м і й відповідності до концепції о р т о г о н а л ь н о ї м а ш и н и .

ПІ

Паралельний
ПК
АЛП

Послідовний
ПД
АЛП

Рис. 12.10. Машина III

Я к щ о в м а ш и н і І з б і л ь ш и т и кількість п а р а р и ф м е т и к о - л о г і ч н и й пристрій <==>


п а м ' я т ь д а н и х (іноді цю п а р у н а з и в а ю т ь п р о ц е с о р н и м елементом), то о д е р ж и м о машину
IV (рис. 12.11). Є д и н и й п р и с т р і й к е р у в а н н я в и д а є к о м а н д у за командою відразу всім
п р о ц е с о р н и м елементам. З одного боку, відсутність з ' є д н а н ь м і ж п р о ц е с о р н и м и еле­
м е н т а м и р о б и т ь п о д а л ь ш е н а р о щ у в а н н я їх числа в і д н о с н о п р о с т и м , але з іншого боку,
с и л ь н о о б м е ж у є з а с т о с о в н і с т ь м а ш и н ц ь о г о класу. Таку с т р у к т у р у м а є обчислювальна
система РЕРЕ, я к а о б ' є д н у є 288 п р о ц е с о р н и х елементів

ПК

1
АЛП АЛП
і
АЛП

І І 1
ПД ПД ПД

Рис. 12.11. Машина IV


435

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


машини IV, то о д е р ж и м о с т р у к т у р у м а ш и н и V (рис. 12.12). Б у д ь - я к и й п р о ц е с о р н и й еле­
мент тепер м о ж е з в е р т а т и с я до д а н и х як у своїй п а м ' я т і , так і в п а м ' я т і б е з п о с е р е д н і х
сусідів. Подібна с т р у к т у р а характерна, н а п р и к л а д , д л я к л а с и ч н о ї м а т р и ч н о ї б а г а т о п р о ­
цесорної системи ІЬІЛАС IV.

Рис. 12.12. Машина V

Відмітимо, що у всіх м а ш и н а х з 1-ї по У-у д о т р и м а н а к о н ц е п ц і я р о з д і л е н н я п а м ' я т і


даних і а р и ф м е т и к о - л о г і ч н и х п р и с т р о ї в , п р и п у с к а ю ч и н а я в н і с т ь ш и н и д а н и х а б о я к о г о -
небудь к о м у т у ю ч о г о елемента м і ж н и м и . М а ш и н а V I , н а з в а н а м а т р и ц е ю з ф у н к ц і о н а л ь ­
ною п а м ' я т т ю (або п а м ' я т т ю з в б у д о в а н о ю логікою), є і н ш и м підходом, що передбачає
розподіл логіки п р о ц е с о р а по в с ь о м у з а п а м ' я т о в у ю ч о м у п р и с т р о ю (рис. 12.13). П р и к л а ­
дом м о ж у т ь с л у ж и т и як п р о с т і асоціативні з а п а м ' я т о в у ю ч і п р и с т р о ї , так і складні асоці­
ативні процесори.

пк

АЛП
+
пд

Рис. 12.13. Машина VI

12.4.2. Класифікація Фліна


Одну з перших п р а к т и ч н о з н а ч и м и х класифікацій паралельних к о м п ' ю т е р н и х систем
подав у 1966 році співробітник фірми I B M М а й к л Флін, я к и й зараз є п р о ф е с о р о м Стен-
фордського університету (СІЛА). Його класифікація базується на оцінці потоку і н ф о р м а ­
ції, яка поділена на потік даних між основною п а м ' я т т ю та п р о ц е с о р о м , та потік команд,
які виконує процесор. П р и ц ь о м у потік даних та к о м а н д м о ж е бути як о д и н и ч н и м , так і
м н о ж и н н и м . Згідно з М. Фліном, усі комп'ютерні системи поділяють н а с т у п н и м ч и н о м :
• ОКОД - к о м п ' ю т е р н і системи з о д и н и ч н и м п о т о к о м к о м а н д та о д и н и ч н и м п о ­
током д а н и х (SISD - Single Instruction stream Single Data stream).
• М К О Д - к о м п ' ю т е р н і системи з м н о ж и н н и м п о т о к о м к о м а н д та о д и н и ч н и м п о ­
током д а н и х ( M I S D - M u l t i p l y Instruction stream Single Data stream).
436

• О К М Д - к о м п ' ю т е р н і системи з о д и н и ч н и м п о т о к о м к о м а н д та м н о ж и н н и м по­


т о к о м д а н и х ( S I M D - Single Instruction stream M u l t i p l y Data stream).
• М К М Д - к о м п ' ю т е р н і с и с т е м и з м н о ж и н н и м п о т о к о м к о м а н д та м н о ж и н н и м по­
т о к о м д а н и х ( M I M D - M u l t i p l y Instruction stream Multiply Data stream).
Р о з г л я н е м о з а п р о п о н о в а н у M . Ф л і н о м к л а с и ф і к а ц і ю детальніше. Н а поданих нижче
р и с у н к а х п о з н а ч е н о : ПК - п р и с т р і й к е р у в а н н я , ПР - п р о ц е с о р , ПД - п а м ' я т ь даних.
До класу к о м п ' ю т е р н и х систем з о д и н и ч н и м п о т о к о м к о м а н д та о д и н и ч н и м потоком
д а н и х н а л е ж и т ь , з о к р е м а , к о м п ' ю т е р з а р х і т е к т у р о ю Д ж о н а ф о н Н е й м а н а , я к и м , напри­
клад, є р о з п о в с ю д ж е н и й п е р с о н а л ь н и й к о м п ' ю т е р . С т р у к т у р а цієї системи представлена
на рис. 12.14а. О р г а н і з а ц і я р о б о т и к о м п ' ю т е р н и х систем ц ь о г о класу була розглянута в
попередніх р о з д і л а х к н и г и .

ПК ПК

ПР 1 ПД І Р і
П І ПД

Ь)

ПК пк

ПР ї
ПД ПР ПД

с) d)
Рис. 12.14. Структура комп'ютерної системи типу ОКОД а), МКОДЬ), ОКМД с), МКМД d)

С т р у к т у р а к о м п ' ю т е р н о ї с и с т е м и з м н о ж и н н и м п о т о к о м к о м а н д та о д и н и ч н и м пото­
ком д а н и х п о к а з а н а на рис. 12.14b. К о м е р ц і й н і у н і в е р с а л ь н і к о м п ' ю т е р н і системи цього
т и п у на д а н и й час невідомі, п р о т е в о н и м о ж у т ь з ' я в и т и с я у м а й б у т н ь о м у . До цього типу
систем з д е я к и м и у м о в н о с т я м и м о ж н а віднести спеціалізовані потокові процесори, зо­
к р е м а систолічні, які в и к о р и с т о в у ю т ь , н а п р и к л а д , при о б р о б ц і з о б р а ж е н ь .
В к о м п ' ю т е р н і й системі з о д и н и ч н и м п о т о к о м к о м а н д та м н о ж и н н и м потоком даних
(рис. 12.14 с) о д н о ч а с н о о б р о б л я є т ь с я велика кількість даних. До цього класу, зокрема,
н а л е ж а т ь р а н і ш е р о з г л я н у т і в е к т о р н і п р о ц е с о р и . До к о м п ' ю т е р н и х систем з одиничним
п о т о к о м к о м а н д т а м н о ж и н н и м п о т о к о м д а н и х м о ж н а віднести т а к о ж апаратну підсис­
тему п р о ц е с о р і в Pentium, яка р е а л і з о в у є технологію М М Х о п р а ц ю в а н н я даних для гра­
фічної о п е р а ц і й н о ї с и с т е м и Windows.
Х а р а к т е р н и м п р и к л а д о м к о м п ' ю т е р н о ї системи з о д и н и ч н и м п о т о к о м команд та мно­
ж и н н и м п о т о к о м д а н и х м о ж е с л у ж и т и система, яка складається з двох частин: зовніш­
нього к о м п ' ю т е р а з а р х і т е к т у р о ю Д ж о н а ф о н Н е й м а н а , я к и й в и к о н у є р о л ь пристрою
к е р у в а н н я , і м а с и в у і д е н т и ч н и х с и н х р о н і з о в а н и х е л е м е н т а р н и х процесорів, здатних од­
ночасно в и к о н у в а т и ту ж саму дію над р і з н и м и д а н и м и . Кожен п р о ц е с о р у масиві має
місцеву п а м ' я т ь невеликої є м н о с т і , де зберігаються дані, які о б р о б л я ю т ь с я паралельно.
437

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


він може довільно з в е р н у т и с я до к о ж н о г о п р о ц е с о р а масиву. П р о г р а м а м о ж е в и к о н у в а ­
тися т р а д и ц і й н о послідовно на з о в н і ш н ь о м у комп'ютері, а її ч а с т и н а м о ж е п а р а л е л ь н о
в и к о н у в а т и с я на масиві п р о ц е с о р і в .
У комп'ютерній системі з м н о ж и н н и м п о т о к о м к о м а н д та м н о ж и н н и м п о т о к о м да­
них кожен п р о ц е с о р оперує із своїм п о т о к о м к о м а н д та своїм п о т о к о м д а н и х (рис. 12. -
4с1). Як п р а в и л о , о к р е м і п р о ц е с о р и б а г а т о п р о ц е с о р н о ї с и с т е м и є с е р і й н и м и п р и с т р о я м и ,
що д о з в о л я є з н а ч н о з м е н ш и т и вартість проекту. У класі М К М Д т р е б а в і д р і з н я т и с и л ь н о
зв'язані системи, власне б а г а т о п р о ц е с о р н і системи, від м е р е ж комп'ютерів, т о б т о слабо
з в ' я з а н и х систем; т о б т о б а г а т о п р о ц е с о р н і с и с т е м и т а к о м п ' ю т е р н і м е р е ж і п о т р а п л я ю т ь
до різних підкласів класу МІІУГО.
В 1978 році Д. Куком було з а п р о п о н о в а н о р о з ш и р е н н я класифікації Фліна. У сво­
їй класифікації Д. Кук р о з д і л и в п о т о к и к о м а н д та д а н и х на с к а л я р н і та в е к т о р н і п о т о ­
ки. Комбінація цих потоків п р и в о д и т ь в п і д с у м к у до 16 т и п і в архітектури п а р а л е л ь н и х
комп'ютерних систем.

12.5. Типи архітектур систем ОКМД


До к о м п ' ю т е р н и х систем класу О К М Д н а л е ж а т ь різні т и п и систем, які під к е р у в а н ­
н я м о д и н и ч н о г о п о т о к у к о м а н д о б р о б л я ю т ь п о т о к и даних. В п е р ш у чергу до ц и х систем
потрібно віднести векторні та м а т р и ч н і комп'ютерні системи. Перші з них були де­
тально розглянуті раніше. Призначення матричних комп'ютерних систем багато в
чому схоже з п р и з н а ч е н н я м векторних к о м п ' ю т е р н и х систем - обробка великих ма­
сивів д а н и х . В основі м а т р и ч н и х к о м п ' ю т е р н и х систем л е ж и т ь м а т р и ч н и й п р о ц е с о р , що
складається з регулярного масиву п р о ц е с о р н и х елементів (ПЕ). О р г а н і з а ц і я систем п о ­
дібного т и п у н а п е р ш и й погляд д о с т а т н ь о п р о с т а . Вони м а ю т ь п р и с т р і й к е р у в а н н я , щ о
генерує потік к о м а н д і велике ч и с л о ПЕ, що п р а ц ю ю т ь п а р а л е л ь н о і о б р о б л ю ю т ь к о ж е н
свій потік даних. П р о т е на п р а к т и ц і , щ о б з а б е з п е ч и т и д о с т а т н ю е ф е к т и в н і с т ь системи
при вирішенні ш и р о к о г о кола з а в д а н ь , необхідно організувати з в ' я з к и між п р о ц е с о р н и ­
ми елементами так, щ о б я к н а й п о в н і ш е з а в а н т а ж и т и їх р о б о т о ю . Саме х а р а к т е р з в ' я з к і в
між ПЕ і визначає р і з н и ц ю у в л а с т и в о с т я х системи.
М і ж м а т р и ч н и м и і в е к т о р н и м и к о м п ' ю т е р н и м и с и с т е м а м и є істотна р і з н и ц я .
В складі системи команд в е к т о р н о г о п р о ц е с о р а є к о м а н д и о б р о б к и векторів даних,
що дозволяє е ф е к т и в н о з а в а н т а ж и т и к о н в е є р и його о п е р а ц і й н и х блоків. Векторні п р о ­
цесори п р о с т і ш е в и к о р и с т о в у в а т и , т о м у що к о м а н д и для о б р о б к и векторів - це з р у ч н і ­
ша модель п р о г р а м у в а н н я , ніж к о м а н д и для п а р а л е л ь н о в к л ю ч е н и х ПЕ.
М а т р и ч н и й п р о ц е с о р інтегрує безліч і д е н т и ч н и х п р о ц е с о р н и х елементів, логічно
о б ' є д н а н и х у м а т р и ц ю і п р а ц ю ю ч и х в стилі О К М Д . Не так істотно, як к о н с т р у к т и в н о
реалізована м а т р и ц я п р о ц е с о р н и х елементів - на о д н о м у кристалі чи на декількох. Важ­
л и в и й сам п р и н ц и п - ПЕ логічно с к о м п о н о в а н і в м а т р и ц ю і п р а ц ю ю т ь с и н х р о н н о , т о б т о
присутній тільки один потік к о м а н д д л я всіх.
Є дві головні конфігурації, які були в и к о р и с т а н і в м а т р и ч н и х к о м п ' ю т е р н и х сис­
темах класу О К М Д . В п е р ш і й схемі к о ж е н п р о ц е с о р Р м а є в л а с н у л о к а л ь н у п а м ' я т ь М
(рис. 12.15).
438

Б л о к керування

1r

t І
Pi P2 p -l
n P n

Mi
t і

M2
І

Мз
t Mn-i Mn

Комунікаційна мережа

Рис. 12.15. Багатопроцесорна комп'ютерна система з одиничним потоком команд


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

П р о ц е с о р и м о ж у т ь з в ' я з а т и с я один з о д н и м через к о м у н і к а ц і й н у мережу. Я к щ о ко­


м у н і к а ц і й н а м е р е ж а не з а б е з п е ч у є п р я м о г о з в ' я з к у м і ж з а д а н о ю п а р о ю процесорів, то
згодом ця пара м о ж е о б м і н я т и с я д а н и м и через п р о м і ж н и й п р о ц е с о р . Таку схему зв'язку
було в и к о р и с т а н о в к о м п ' ю т е р і I L L I A C IV. К о м у н і к а ц і й н а мережа в I L L I A C IV дозволя­
ла к о ж н о м у п р о ц е с о р у з в ' я з у в а т и с я б е з п о с е р е д н ь о з ч о т и р м а сусідніми процесорами. В
м а т р и ц і із 8x8 п р о ц е с о р і в к о ж н и й і-й п р о ц е с о р міг к о н т а к т у в а т и безпосередньо з (і-1)-
м, (і+1)-м, (і-8)-м, і (і+8)-м п р о ц е с о р а м и .
У другій схемі п р о ц е с о р и і модулі п а м ' я т і з в ' я з у ю т ь с я між собою через комунікацій­
ну м е р е ж у (рис. 12.16). Два п р о ц е с о р и м о ж у т ь передати дані один о д н о м у через проміж­
н и й модуль п а м ' я т і або, м о ж л и в о , через п р о м і ж н и й п р о ц е с о р . За такою схемою, напри­
клад, п о б у д о в а н о п р о ц е с о р BSP ф і р м и Burroughs.

Блок керування

?2
I
Рп-І

Комунікаційна мережа
£_3
м, щ
Рис. 12.16. Багатопроцесорна комп'ютерна система з одиничним потоком команд
та множинним потоком даних із спільною пам'яттю
439

12.6. Типи архітектур систем МКМД


Комп'ютерні системи класу М К М Д с к л а д а ю т ь с я з багатьох п р о ц е с о р і в та багатьох
модулів пам'яті, з ' є д н а н и х за д о п о м о г о ю к о м у н і к а ц і й н о ї мережі. Вони м о ж у т ь бути п о ­
ділені на дві великі групи: зі спільною п а м ' я т т ю т а з передачею п о в і д о м л е н ь . На рис. 12.17
а та Ь показано з а г а л ь н у с т р у к т у р у ц и х д в о х груп к о м п ' ю т е р н и х систем.

а Ь
Рис. 12.17. Загальна структура комп'ютерних систем зі спільною пам'яттю а
та з передачею повідомлень Ь

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


чому к о ж н и й п р о ц е с о р м а є рівні м о ж л и в о с т і ч и т а т и та з а п и с у в а т и дані до пам'яті, а
також однакову ш в и д к і с т ь д о с т у п у до пам'яті, т о м у їх часто н а з и в а ю т ь с и м е т р и ч н и м и
б а г а т о п р о ц е с о р н и м и системами. К о м е р ц і й н и м и п р и к л а д а м и к о м п ' ю т е р н и х систем п е р ­
шої групи є б а г а т о п р о ц е с о р н і сервери ф і р м Sequent Computer's Balance and Symmetry,
Sun Microsystems та Silicon Graphics Inc.
У другій групі п р о ц е с о р и о б м і н ю ю т ь с я і н ф о р м а ц і є ю через к о м у н і к а ц і й н у мережу.
В комп'ютерній системі з передачею п о в і д о м л е н ь (також їх н а з и в а ю т ь с и с т е м а м и з р о з ­
поділеною пам'яттю) з а з в и ч а й н а я в н а л о к а л ь н а п а м ' я т ь і п р о ц е с о р у к о ж н о м у вузлі ко­
мунікаційної мережі. Тут в і д с у т н я спільна п а м ' я т ь , т о м у необхідно п е р е м і щ у в а т и дані
з однієї локальної пам'яті до іншої за допохмогою м е х а н і з м у передачі повідомлень. Це,
зазвичай, р о б и т ь с я ш л я х о м п о с и л а н н я - о т р и м а н н я кількох к о м а н д , які п о в и н н і бути
вписані в п р и к л а д н е п р о г р а м н е з а б е з п е ч е н н я . К о м е р ц і й н и м и п р и к л а д а м и систем пере­
дачі повідомлень є системи n C U B E , i P S C / 2 і різні с и с т е м и , б а з о в а н і на т р а н с п ' ю т е р а х . Ці
системи кінець кінцем п о с т у п и л и с я системам глобальної м е р е ж і Internet, в якій вузли є
або серверами, або п е р с о н а л ь н и м и к о м п ' ю т е р а м и .
Архітектуру з р о з п о д і л е н о ю п а м ' я т т ю довелося в и к о р и с т о в у в а т и із-за переходу
до все більших систем. П о т р і б н о відзначити, що п р о г р а м у в а н н я в системі зі спільною
пам'яттю є п р о с т і ш и м , а в системах передачі п о в і д о м л е н ь з а б е з п е ч у є т ь с я м а с ш т а б о в а -
ність. Тому з ' я в и л и с ь к о м б і н о в а н і системи з р о з п о д і л е н о ю та з спільною п а м ' я т т ю , такі
як SGI Origin2000, та інші.

12.7. Організація комп'ютерних систем із спільною пам'яттю

12.7.1. Типи комп'ютерних систем із спільною пам'яттю


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

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


п а м ' я т і з є д и н и м а д р е с н и м п р о с т о р о м д л я усіх процесорів. У системі із спільною пам'ят­
тю п р о ц е с о р и в з а є м о д і ю т ь м і ж с о б о ю ш л я х о м з ч и т у в а н н я - з а п и с у і н ф о р м а ц і ї з комірок
спільної п а м ' я т і , я к а є о д н а к о в о д о с т у п н о ю для всіх п р о ц е с о р і в . Кожен п р о ц е с о р може
мати регістри, б у ф е р и , кеш та л о к а л ь н у п а м ' я т ь , як додаткові р е с у р с и пам'яті. Потрібно
брати до уваги кілька о с н о в н и х п р о б л е м , які з ' я в л я ю т ь с я при п р о е к т у в а н н і систем із
спільною п а м ' я т т ю . Це:
• к о н т р о л ь д о с т у п у до пам'яті;
• синхронізація;
• захист;
• безпека.
К о н т р о л ь д о с т у п у визначає, д л я я к о г о п р о ц е с у м о ж л и в и й д о с т у п д о я к и х ресурсів.
Моделі к о н т р о л ю д о с т у п у в и м а г а ю т ь перевірки вмісту таблиці к о н т р о л ю д о с т у п у для
к о ж н о г о з а п и т у д о с т у п у від п р о ц е с о р і в д о спільної пам'яті. Ц я т а б л и ц я в м і щ у є прапор­
ці, які в и з н а ч а ю т ь з а к о н н і с т ь к о ж н о ї с п р о б и доступу. Я к щ о є с п р о б а д о с т у п у до ресур­
сів, то п о к и б а ж а н и й д о с т у п не з а в е р ш е н и й , всі с п р о б и д о с т у п у нехтуються, і нелегальні
п р о ц е с и б л о к у ю т ь с я . З а п и т и від с у м і с н и х процесів м о ж у т ь з м і н и т и вміст таблиці контро­
лю д о с т у п у п р о т я г о м їх в и к о н а н н я . П р а п о р ц і к о н т р о л ю д о с т у п у з п р а в и л а м и синхроні­
зації в и з н а ч а ю т ь ф у н к ц і о н а л ь н і с т ь системи.
М е х а н і з м и с и н х р о н і з а ц і ї о б м е ж у ю т ь час д о с т у п у від сумісних процесів до спільних
ресурсів. Досконала с и н х р о н і з а ц і я гарантує, щ о і н ф о р м а ц і я передається н а л е ж н и м чи­
н о м т а з а б е з п е ч у є т ь с я н а л е ж н а системна ф у н к ц і о н а л ь н і с т ь .
Захист - це системна о с о б л и в і с т ь , що п е р е ш к о д ж а є н а д а н н ю п р о ц е с а м довільного
д о с т у п у до ресурсів, що н а л е ж а т ь і н ш и м п р о ц е с а м . Сумісне в и к о р и с т а н н я і захист є
п р о т и л е ж н и м и за ф у н к ц і я м и , о с к і л ь к и сумісне в и к о р и с т а н н я д о з в о л я є доступ, тоді як
захист о б м е ж у є його.
Н а й п р о с т і ш а система із спільною п а м ' я т т ю м а є один модуль пам'яті, я к и й може бути
д о с т у п н и й від двох п р о ц е с о р і в (рис. 12.18). З а п и т и надходять в модуль пам'яті через
його два п о р т и . А р б і т р а ж н и й блок у м е ж а х м о д у л я п а м ' я т і передає з а п и т и до диспетчера
пам'яті. Я к щ о м о д у л ь п а м ' я т і не з а й н я т и й і надходить один запит, то а р б і т р а ж н и й блок
передає цей з а п и т до д и с п е т ч е р а п а м ' я т і і з а п и т обслуговується. Модуль знаходиться
в з а й н я т о м у стані під час о б с л у г о в у в а н н я запиту. Я к щ о надходить н о в и й запит, коли
п а м ' я т ь з а й н я т а , о б с л у г о в у ю ч и п о п е р е д н і й запит, п р о ц е с о р Р, що послав запит, може
у т р и м у в а т и свій з а п и т на лінії, п о к и п а м ' я т ь не стає вільною, або м о ж е повторювати свій
з а п и т пізніше.

Рис. 12.18. Система із спільною пам'яттю з двома портами


447

З а л е ж н о від т и п у к о м у н і к а ц і й н о ї м е р е ж і , с и с т е м и із спільною п а м ' я т т ю м о ж н а кла­


сифікувати н а с т у п н и м ч и н о м :
• системи U M A з однорідним доступом до пам'яті ( U M A - uniform memory access);
• системи N U M A з н е о д н о р і д н и м д о с т у п о м до п а м ' я т і ( N U M A - nonuniform memo­
ry access);
• системи С О М А - архітектура л и ш е з к е ш - п а м ' я т т ю ( С О М А - cache-only memory
architecture).

12.7.2. Системи з однорідним доступом до пам'яті


У системі U M A спільна пам'ять доступна всім процесорам через комунікаційну мере­
жу однаковим чином. Тому всі процесори мають рівний час доступу до будь-якої комірки
пам'яті. Комунікаційна мережа, яка використовується в системі U M A , може бути одинич­
ною або множинною шиною, координатною мережею чи багатопортовою пам'яттю.
Типова с т р у к т у р а системи з о д н о р і д н и м д о с т у п о м до п а м ' я т і на основі о д н о ш и н н о ї
комунікаційної мережі приведена на рис. 12.19 а.
Спільна пам'ять
Спільна пам'ять
Спільна пам'ять
M M M M 1 M J
M M M M
M

M M
)
і
J!
M
V
I/O I/O с
p
с
p
E с I/O

а Ь с
Рис. 12.19. Багатопроцесорні системи ЦМА із спільною пам'яттю на основі шинної топології а,
координатного комутатора Ь та багатоярусної мережі с

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


після того, як вміст кеш пам'ятей С з а в а н т а ж е н о від спільної пам'яті. Ця організація
пам'яті є н а й п о п у л я р н і ш о ю серед систем із спільною п а м ' я т т ю . Вона д о з в о л я є досить
п р о с т о р о з ш и р и т и систему ш л я х о м п і д к л ю ч е н н я більшої кількості п р о ц е с о р і в . П р и к л а ­
ди цієї а р х і т е к т у р и - сервери Sun Starfire servers, HP V series, і Compaq AlphaServer GS.
Зрозуміло, що п р о д у к т и в н і с т ь цієї с и с т е м и о б м е ж е н а часом ц и к л у ш и н и . Тому кожен
процесор має свою кеш пам'ять, щ о с у т т є в о з м е н ш у є кількість з в е р н е н ь д о ш и н и . Н а я в ­
ність багатьох кеш п а м ' я т е й п о р о д ж у є п р о б л е м у їх когерентності, тобто н е с у п е р е ч н о с т і
вмісту кеш пам'яті к о ж н о г о п р о ц е с о р а із вмістом спільної о с н о в н о ї п а м ' я т і б а г а т о п р о ­
цесорної системи. З а з н а ч е н у п р о б л е м у в и р і ш у ю т ь ш л я х о м с п о с т е р е ж е н н я з а ш и н о ю , щ о
з'єднує п р о ц е с о р и з п а м ' я т т ю , за д о п о м о г о ю к о н т р о л е р а к о ж н о ї кеш пам'яті р а з о м із
реалізацію в кожній кеш пам'яті наскрізного запису. М о ж н а т а к о ж в частині п р о ц е с о р і в
не використовувати кеш п а м ' я т ь .
П р о б л е м а когерентності п а м ' я т і є однією з п р и ч и н того, що б а г а т о п р о ц е с о р н і систе­
ми із спільною п а м ' я т т ю на основі спільної ш и н и м а ю т ь н е в е л и к у кількість процесорів.
442

Так, м а к с и м а л ь н а кількість п р о ц е с о р і в т и п у A l p h a 21264 в системі Compaq Alfa Server


GS 140 рівна 14, п р о ц е с о р і в РА-8500 в системі HP N9000 - 8, п р о ц е с о р і в Power PC 604 у
системі RS 6000 - 4.
Я к в ж е в к а з у в а л о с ь , в и к о р и с т о в у в а н а в системі U M A комунікаційна мережа може
бути о д и н и ч н о ю ч и м н о ж и н н о ю ш и н о ю , к о о р д и н а т н о ю м е р е ж е ю ч и багатопортовою
п а м ' я т т ю . На рис.12.19Ь та рис.12.19с п о д а н о типові логічні організації багатопроцесор­
них систем із спільною п а м ' я т т ю на основі топології к о о р д и н а т н о ї комутації та багато­
ярусної м е р е ж і . Тут б у к в о ю С п о з н а ч е н о л о к а л ь н у кеш п а м ' я т ь , I/O - пристрої введення/
в и в е д е н н я , Р - п р о ц е с о р и , M - модулі спільної пам'яті.
С т р у к т у р и на основі топології к о о р д и н а т н о ї комутації (рис. 12.19а) та багатоярусної
мережі (рис. 12.19b) д о з в о л я ю т ь в и р і ш и т и п р о б л е м у обмеженої пропускної здатності
системи із с п і л ь н о ю ш и н о ю . К о о р д и н а т н и й к о м у т а т о р та багатоярусна мережа забез­
печують м н о ж и н н і с т ь шляхів з ' є д н а н н я п р о ц е с о р і в та блоків пам'яті. Тому тут кількість
п р о ц е с о р і в є з а з в и ч а й більшою, ніж в системах із спільною ш и н о ю .

12.7.3. Системи з неоднорідним доступом до пам'яті


У системі N U M A кожен п р о ц е с о р м а є ч а с т и н у спільної пам'яті (рис. 12.20). Ця пам'ять
має є д и н и й а д р е с н и й п р о с т і р . Тому, б у д ь - я к и й п р о ц е с о р м о ж е з в е р н у т и с я до будь-якої
к о м і р к и спільної п а м ' я т і б е з п о с е р е д н ь о , в и к о р и с т о в у ю ч и її адресу. П р о т е час доступу до
модулів спільної п а м ' я т і з а л е ж и т ь від їх відстані від п р о ц е с о р а . Це п р и в о д и т ь до різного
(неоднорідного) часу д о с т у п у до п а м ' я т і від р і з н и х процесорів. Використовується кілька
а р х і т е к т у р для п і д к л ю ч е н н я п р о ц е с о р і в до модулів пам'яті в системі N U M A .

пам'ять

Рис. 12.20. Система NUMA із спільною пам'яттю

Я к п р а в и л о , система N U M A р о з р а х о в а н а н а з а с т о с у в а н н я великої кількості проце­


сорів. U M A є більш в и б а г л и в о ю щ о д о швидкодії підсистеми пам'яті. Тобто реалізація
U M A є п о р і в н я н о п р о с т і ш о ю т а р о з п о в с ю д ж е н і ш о ю (багатопроцесорні сервери фірми
Compaq, я к п р и к л а д ) . А р х і т е к т у р у N U M A р е а л і з о в а н о , н а п р и к л а д , в суперкомп'ютері
O R I G I N 2000 ф і р м и SGI (більш т о ч н о - т у т є архітектура C C - N U M A , або N U M A із мно­
ж и н о ю к о г е р е н т н и х кеш п а м ' я т е й ) .
У с и м е т р и ч н и х б а г а т о п р о ц е с о р н и х к о м п ' ю т е р н и х системах із спільною пам'яттю має
місце п р а к т и ч н а м е ж а числа їх п р о ц е с о р і в . Е ф е к т и в н а схема з кеш пам'яттю зменшує
443

н а в а н т а ж е н н я на ш и н у м і ж п р о ц е с о р о м і о с н о в н о ю п а м ' я т т ю , але зі з б і л ь ш е н н я м ч и с ­
ла процесорів н а в а н т а ж е н н я на ш и н у т а к о ж з р о с т а є . О с к і л ь к и ш и н а в и к о р и с т о в у є т ь с я
також для передачі сигналів, що з а б е з п е ч у ю т ь когерентність, ситуація з н а в а н т а ж е н н я м
на ш и н у ще більш у с к л а д н ю є т ь с я . З якогось м о м е н т у в плані п р о д у к т и в н о с т і ш и н а пере­
творюється на вузьке місце. Для систем із спільною п а м ' я т т ю т а к о ю м е ж е ю стає ч и с л о
процесорів в межах від 16 до 64. Н а п р и к л а д , кількість п р о ц е с о р і в системи Silicon Grap­
hics Power Challenge о б м е ж е н а 64 п р о ц е с о р а м и т и п у R10000, о с к і л ь к и п р и п о д а л ь ш о м у
збільшенні числа п р о ц е с о р і в п р о д у к т и в н і с т ь падає.
О б м е ж е н н я на число процесорів в архітектурі з с п і л ь н о ю п а м ' я т т ю с л у ж и т ь спо­
н у к а л ь н и м м о т и в о м для р о з в и т к у к л а с т е р н и х систем. В о с т а н н і х кожен вузол м а є л о ­
кальну о с н о в н у п а м ' я т ь , т о б т о додатки "не бачать" спільної о с н о в н о ї пам'яті. По суті,
когерентність п і д т р и м у є т ь с я не стільки а п а р а т у р о ю , скільки п р о г р а м н и м з а б е з п е ч е н ­
ням, що не к р а щ и м ч и н о м п о з н а ч а є т ь с я на п р о д у к т и в н о с т і . О д н и м із ш л я х і в с т в о р е н н я
в е л и к о м а с ш т а б н и х к о м п ' ю т е р н и х систем є технологія C C - N U M A . Н а п р и к л а д , система
N U M A Silicon Graphics O r i g i n п і д т р и м у є до 1024 п р о ц е с о р і в R10000. Технологія C C -
N U M A передбачає в к л ю ч е н н я м н о ж и н и н е з а л е ж н и х вузлів, к о ж н и й з я к и х м о ж е бути,
наприклад, системою із спільною п а м ' я т т ю . Т а к и м ч и н о м , вузол містить м н о ж и н у п р о ­
цесорів, у к о ж н о г о з я к и х п р и с у т н і локальні кеш п а м ' я т і п е р ш о г о і другого рівнів. У вузлі
є й основна пам'ять, спільна для всіх п р о ц е с о р і в ц ь о г о вузла, але така, що р о з г л я д а є т ь с я
я к частина спільної о с н о в н о ї п а м ' я т і системи. В архітектурі C C - N U M A вузол в и с т у п а є
о с н о в н и м будівельним блоком. Н а п р и к л а д , к о ж е н вузол у системі Silicon Graphics Origin
містить два м і к р о п р о ц е с о р и M I P S R10000. Вузли о б ' є д н у ю т ь с я за д о п о м о г о ю якої-не-
будь комунікаційної мережі, яка представлена к о о р д и н а т н и м к о м у т а т о р о м , кільцем або
має іншу топологію.
Відповідно до технології C C - N U M A , кожен в у з о л у системі володіє власною о с н о ­
вною п а м ' я т т ю , але з погляду п р о ц е с о р і в м а є місце спільна п а м ' я т ь , де к о ж е н елемент
будь-якої локальної о с н о в н о ї пам'яті м а є у н і к а л ь н у с и с т е м н у адресу. Коли п р о ц е с о р іні­
ціює доступ до пам'яті і потрібна комірка в і д с у т н я в й о г о л о к а л ь н і й кеш пам'яті, кеш-
п а м ' я т ь другого рівня п р о ц е с о р а організує о п е р а ц і ю в и б і р к и . Я к щ о потрібна комірка
знаходиться в локальній о с н о в н і й пам'яті, вибірка п р о в о д и т ь с я з в и к о р и с т а н н я м л о к а л ь ­
ної ш и н и . Я к щ о ж необхідна комірка зберігається у віддаленій секції спільної пам'яті, то
автоматично ф о р м у є т ь с я запит, що п о с и л а є т ь с я по к о м у н і к а ц і й н і й мережі на п о т р і б н у
локальну шину, і вже по ній до підключеної до даної л о к а л ь н о ї ш и н и кеш пам'яті. Всі ці
дії виконуються а в т о м а т и ч н о , п р о з о р і для п р о ц е с о р а і його кеш пам'яті.
У даній конфігурації головна т у р б о т а - когерентність к е ш - п а м ' я т е й . Хоча окремі р е ­
алізації і відрізняються в деталях, з а г а л ь н и м є те, що к о ж е н вузол м а є довідник, в я к о ­
му зберігається і н ф о р м а ц і я п р о м і с ц е з н а х о д ж е н н я в системі к о ж н о ї складової спільної
пам'яті, а т а к о ж п р о стан кеш пам'яті.

12.7.4. Системи лише з кеш пам'яттю


Подібно д о N U M A в системі С О М А к о ж е н п р о ц е с о р м а є ч а с т и н у спільної пам'яті
(рис. 12.21). П р о т е в д а н о м у в и п а д к у спільна п а м ' я т ь є кеш п а м ' я т т ю . С и с т е м а С О М А
вимагає, щ о б дані мігрували до п р о ц е с о р а , що з а п р о с и в їх.
444

Рис. 12.21. Система СОМА зі спільною пам'яттю

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


Крім того, т у т н а я в н а д и р е к т о р і я D кеш пам'яті, яка д о п о м а г а є у віддаленому доступі до
кеш пам'яті. П р и к л а д о м цієї архітектури є система KSR-1 фірми Kendall Square Recearch.

12.8. Організація комп'ютерних систем із розподіленою пам'яттю


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

Мі
ооо

Рис. 12.22. Система з розподіленою пам'яттю

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


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

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


режі, з о к р е м а гіперкубічні мережі, які були д о с и т ь п о п у л я р н і п р о т я г о м багатьох років.
Двовимірні і т р и в и м і р н і решітчасті м е р е ж і т а к с а м о ш и р о к о в и к о р и с т о в у в а л и с ь в сис­
темах передачі повідомлень. Два в а ж л и в і ч и н н и к и п о в и н н і р о з г л я д а т и с я в п р о е к т у в а н ­
ні к о м у н і к а ц і й н о ї м е р е ж і для систем передачі п о в і д о м л е н ь . Це - п р о п у с к н а здатність і
м е р е ж н и й час о ч і к у в а н н я . П р о п у с к н а здатність в и з н а ч е н а як кількість бітів інформації,
переданих з а о д и н и ц ю часу (біт/сек). М е р е ж н и й час о ч і к у в а н н я в и з н а ч е н и й я к час, п о ­
трібний для передачі повідомлення. В 1987 році була введена блокова м а р ш р у т и з а ц і я
як альтернатива т р а д и ц і й н і й м а р ш р у т и з а ц і ї з п р о м і ж н и м з б е р і г а н н я м для того, щ о б
скоротити р о з м і р необхідних буферів і щ о б з м е н ш и т и час о ч і к у в а н н я п о в і д о м л е н н я . У
блоковій м а р ш р у т и з а ц і ї пакет ділиться на м е н ш і б л о к и , які н а з и в а ю т ь б л о к а м и керу­
в а н н я п о т о к о м даних, так, що ці блоки р у х а ю т ь с я к о н в е є р н и м методом р а з о м з б л о к о м
заголовка до вузла п р и з н а ч е н н я . Коли блок з а г о л о в к а блокується через м е р е ж н и й з а т о р ,
наступні за н и м блоки б л о к у ю т ь с я т а к о ж .

12.9. Комунікаційні мережі багатопроцесорних систем

12.9.1. Типи комунікаційних мереж


В основі архітектури будь-якої б а г а т о п р о ц е с о р н о ї к о м п ' ю т е р н о ї системи л е ж и т ь
здатність д о о б м і н у д а н и м и м і ж ї ї к о м п о н е н т а м и . Ц е з а б е з п е ч у є т ь с я к о м у н і к а ц і й н о ю
мережею ( К М М ) , я к а з'єднує м і ж с о б о ю вузли к о м п ' ю т е р н о ї системи за д о п о м о г о ю ка­
налів передачі д а н и х (каналів з в ' я з к у ) . В ролі вузлів м о ж у т ь в и с т у п а т и п р о ц е с о р и , м о ­
дулі пам'яті, п р и с т р о ї в в е д е н н я - в и в е д е н н я , к о м у т а т о р и а б о декілька п е р е р а х о в а н и х
елементів, о б ' є д н а н и х у ф у н к ц і о н а л ь н и й п р и с т р і й . О р г а н і з а ц і я в н у т р і ш н і х к о м у н і к а ц і й
комп'ютерної системи н а з и в а є т ь с я топологією.
Топологію к о м у н і к а ц і й н о ї мережі в и з н а ч а є м н о ж и н а вузлів, які о б ' є д н а н і м н о ж и ­
ною каналів. З в ' я з о к між вузлами з а з в и ч а й р е а л і з у є т ь с я по д в о т о ч к о в і й схемі (point-to-
point). Будь-які два вузли, з в ' я з а н і к а н а л о м зв'язку, н а з и в а ю т ь с у м і ж н и м и в у з л а м и а б о
сусідами. Кожен канал з'єднує один в у з о л - д ж е р е л о з о д н и м в у з л о м - п р и й м а ч е м . К а н а л
характеризується кількістю с и г н а л ь н и х ліній, ч а с т о т о ю а б о ш в и д к і с т ю передачі бітів по
кожній сигнальній лінії, з а т р и м к о ю - часом п е р е с и л а н н я біта з одного вузла до іншого.
Для більшості каналів з а т р и м к а з н а х о д и т ь с я в п р я м і й з а л е ж н о с т і від ф і з и ч н о ї д о в ж и н и
лінії з в ' я з к у та ш в и д к о с т і р о з п о в с ю д ж е н н я сигналу.
Вузол у мережі м о ж е бути т е р м і н а л ь н и м , т о б т о д ж е р е л о м або п р и й м а ч е м даних, к о ­
м у т а т о р о м , що п е р е с и л а є і н ф о р м а ц і ю з вхідного п о р т у на в и х і д н и й , або с у м і щ а т и о б и ­
дві ролі. У мережах із п р я м и м и з в ' я з к а м и к о ж е н в у з о л о д н о ч а с н о є як т е р м і н а л ь н и м
вузлом, так і к о м у т а т о р о м , і п о в і д о м л е н н я п е р е с и л а ю т ь с я м і ж т е р м і н а л ь н и м и вузлами
безпосередньо. У м е р е ж а х з н е п р я м и м и з в ' я з к а м и вузол м о ж е бути а б о т е р м і н а л ь н и м ,
або к о м у т а т о р о м , але не одночасно, т о м у п о в і д о м л е н н я передаються о п о с е р е д к о в а н о ,
за допомогою виділених к о м у т у ю ч и х вузлів. Існують т а к о ж такі топології, я к і не м о ж н а
однозначно зарахувати н і д о п р я м и х , н і д о н е п р я м и х . Б у д ь - я к у п р я м у К М М м о ж н а з о ­
бразити у вигляді непрямої, р о з д і л и в ш и к о ж е н вузол на д в о т е р м і н а л ь н и й вузол і ву­
зол комутації. Сучасні п р я м і мережі р е а л і з у ю т ь с я саме т а к и м ч и н о м - к о м у т а т о р від-
446

діляється від т е р м і н а л ь н о г о вузла і п о м і щ а є т ь с я у виділений м а р ш р у т и з а т о р . Основна


перевага п р я м и х К М М п о л я г а є в тому, щ о к о м у т а т о р м о ж е в и к о р и с т о в у в а т и ресурси
т е р м і н а л ь н о ї ч а с т и н и свого вузла. Це стає істотним, я к щ о врахувати, щ о , як правило,
о с т а н н і й в к л ю ч а є к о м п ' ю т е р або п р о ц е с о р .
К о м у н і к а ц і й н і м е р е ж і б а г а т о п р о ц е с о р н и х систем м о ж у т ь бути поділені на наступні
групи:
• з а л е ж н о від того, чи з а л и ш а є т ь с я к о н ф і г у р а ц і я в з а є м о з в ' я з к і в незмінною, при­
н а й м н і п о к и в и к о н у є т ь с я п е в н е з а в д а н н я , р о з р і з н я ю т ь мережі із статичною і динаміч­
ною т о п о л о г і я м и ;
• з а л е ж н о від способу ф у н к ц і о н у в а н н я : с и н х р о н н і та асинхронні;
• з а л е ж н о від стратегії к е р у в а н н я : ц е н т р а л і з о в а н і та децентралізовані;
• з а л е ж н о від способу п е р е м и к а н н я : схемні та пакетні.
З ' є д н а н н я в статичній м е р е ж і є ф і к с о в а н и м и , тоді як в динамічній мережі вони мо­
ж у т ь з м і н ю в а т и с я в процесі р о б о т и м е р е ж і за допомогою п р о г р а м н и х засобів. При цьому
статичні комунікаційні м е р е ж і в свою чергу ділять на одно-, двовимірні та гіперкубічні.
Д и н а м і ч н і к о м у н і к а ц і й н і м е р е ж і д і л я т ь на ш и н н і (одно та багатошинні) та комутую­
чі (одноярусні, багатоярусні та к о о р д и н а т н і ) , як це п о к а з а н о на рис. 12.23.

Комунікаційні мережі

Динамічні

Координатні

Рис. 12.23. Топології комунікаційних мереж

Дві м о ж л и в і стратегії о п е р а ц і й взаємодії в м е р е ж і - це с и н х р о н н а й асинхронна. У


с и н х р о н н и х К М М всі дії ж о р с т к о узгоджені в часі, що забезпечується за рахунок єди­
ного генератора т а к т о в и х імпульсів (ГТІ), сигнали якого одночасно транслюються у всі
вузли. В а с и н х р о н н и х м е р е ж а х є д и н о г о генератора немає, а функції синхронізації роз­
поділені по всій системі, п р и ч о м у в р і з н и х ч а с т и н а х мережі часто використовуються ло­
кальні ГТІ.
З а л е ж н о від в и б р а н о ї стратегії комутації р о з р і з н я ю т ь м е р е ж і з к о м у т а ц і є ю з'єднань і
м е р е ж і з к о м у т а ц і є ю пакетів. Як у першому, так і в д р у г о м у варіанті і н ф о р м а ц і я переси­
лається у вигляді пакету. П а к е т є групою бітів, для п о з н а ч е н н я якої застосовують також
термін п о в і д о м л е н н я .
У м е р е ж а х з к о м у т а ц і є ю з ' є д н а н ь ш л я х о м відповідного в с т а н о в л е н н я комутуючих
елементів м е р е ж і ф о р м у є т ь с я к а н а л від вузла-джерела до вузла-приймача, що зберіга-
447

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


певною п а р о ю вузлів п р о в о д и т ь с я з а в ж д и п о о д и н ц і і за т и м же м а р ш р у т о м .
В м е р е ж і з к о м у т а ц і є ю пакетів п р и й м а є т ь с я , що п о в і д о м л е н н я с а м о с т і й н о з н а х о д и т ь
свій ш л я х до місця п р и з н а ч е н н я . На відміну від м е р е ж із к о м у т а ц і є ю з ' є д н а н ь , м а р ш р у т
від початкового п у н к т у д о п у н к т у п р и з н а ч е н н я к о ж н о г о р а з у м о ж е бути і н ш и м . Пакет
послідовно п р о х о д и т ь через вузли мережі. Ч е р г о в и й вузол з а п а м ' я т о в у є п р и й н я т и й па­
кет у своєму буфері т и м ч а с о в о г о зберігання, аналізує його і р о б и т ь в и с н о в к и , що з н и м
робити далі. З а л е ж н о від з а в а н т а ж е н о с т і м е р е ж і у х в а л ю є т ь с я р і ш е н н я п р о м о ж л и в і с т ь
негайного п е р е с и л а н н я п а к е т у до н а с т у п н о г о вузла і п р о п о д а л ь ш и й м а р ш р у т п р о х о ­
д ж е н н я пакету н а ш л я х у д о п у н к т у п р и з н а ч е н н я . Я к щ о всі м о ж л и в і к а н а л и д л я пере­
м і щ е н н я пакету до чергового вузла з а й н я т і , в буфері вузла ф о р м у є т ь с я черга пакетів,
яка " р о з с м о к т у є т ь с я " у міру з в і л ь н е н н я ліній з в ' я з к у м і ж в у з л а м и ( я к щ о черга т а к о ж на­
сичується, то відповідно до однієї із стратегій м а р ш р у т и з а ц і ї м о ж е відбутися так з в а н е
"скидання хвоста", т о б т о відмова від пакетів, що з н о в у п о с т у п а ю т ь ) .
К М М м о ж н а т а к о ж к л а с и ф і к у в а т и по тому, як в н и х о р г а н і з о в а н е к е р у в а н н я . У де­
я к и х мережах, о с о б л и в о з к о м у т а ц і є ю з ' є д н а н ь , п р и й н я т е ц е н т р а л і з о в а н е к е р у в а н н я
(рис.12.24).
Сигнали запитів та Сигнали запитів та
станів станів

Контролер
комунікаційної мережі

Сигнали
керування

Процесор 1 інформація Інформація


Прсцессг> 1

Процесор 2 Процесор 2
Комунікаційна мережа

Процесор N Процесор К

Рис.12.24. Багатопроцесорна система на основі комунікаційної мережі


з централізованим керуванням

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

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


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

12.9.2. Основні характеристики комунікаційних мереж


багатопроцесорних систем
До о с н о в н и х х а р а к т е р и с т и к и к о м у н і к а ц і й н и х м е р е ж б а г а т о п р о ц е с о р н и х систем на­
лежать наступні:
• розмір;
• складність;
• кількість з в ' я з к і в ;
• діаметр;
• затримка;
• частота роботи;
• п р о п у с к н а здатність;
• здатність до р о з ш и р е н н я ;
• надійність.
Розмір м е р е ж і в и з н а ч а є т ь с я кількістю вузлів, які об'єднані мережею.
С к л а д н і с т ь м е р е ж і в и м і р ю є т ь с я кількістю о б л а д н а н н я , потрібного д л я її реалізації.
П р и ц ь о м у о д и н и ц е ю в и м і р ю в а н н я м о ж е б у т и т р а н з и с т о р , в е н т и л ь або вузол деякої
п р и в е д е н о ї складності, н а п р и к л а д , д в о в х о д о в и й м у л ь т и п л е к с о р .
В а ж л и в о ю х а р а к т е р и с т и к о ю м е р е ж і є кількість з в ' я з к і в (каналів) між вузлами мере­
жі, я к а с у т т є в о в п л и в а є на складність м е р е ж і та її надійність.
Д і а м е т р м е р е ж і - ч и с л о вузлів, ч е р е з які п о в и н н е п р о й т и п о в і д о м л е н н я , щ о б досягти
його місця призначення.
З д і а м е т р о м тісно п о в ' я з а н а інша х а р а к т е р и с т и к а мережі - з а т р и м к а , яка рівна часу
п р о х о д ж е н н я п о в і д о м л е н н я через в у з л и м е р е ж і д о місця п р и з н а ч е н н я .
Ч а с т о т а р о б о т и м е р е ж і в и з н а ч а є , я к ш в и д к о дані м о ж у т ь передаватися через мережу
одне за о д н и м .
Із ч а с т о т о ю та кількістю з в ' я з к і в м е р е ж і тісно п о в ' я з а н а п р о п у с к н а здатність мережі,
т о б т о кількість інформації, я к а м о ж е б у т и передана через м е р е ж у за о д и н и ц ю часу.
В а ж л и в о ю х а р а к т е р и с т и к о ю м е р е ж і є її здатність до р о з ш и р е н н я ш л я х о м додавання
д о д а т к о в и х вузлів. Вартість д о д а в а н н я вузла з а л е ж и т ь в значній мірі від кількості компо­
нентів і з в ' я з к і в , п о т р і б н и х для д о д а в а н н я вузла. Для д е я к и х м е р е ж вартість додавання
вузла фіксована. П р и ч о м у , для о д н и х м е р е ж вартість д о д а в а н н я вузлів з р о с т а є лінійно
або к в а д р а т и ч н о як ф у н к ц і я р о з м і р у м е р е ж і , для і н ш и х - л о г а р и ф м і ч н о . Вартість часто
є о б м е ж у ю ч и м ч и н н и к о м для р о з ш и р е н н я даної м е р е ж н о ї топології.
Н а д і й н і с т ь в значній мірі з а л е ж и т ь від н а д л и ш к о в о с т і мережі, я к а визначається кіль­
кістю р і з н и х ш л я х і в , через які п о в і д о м л е н н я м о ж е п р о й т и від його джерела до місця
п р и з н а ч е н н я . Я к щ о н е м а є ніякої н а д л и ш к о в о с т і , д е ф е к т н и й вузол може з а ш к о д и т и про­
х о д ж е н н ю всіх а б о ч а с т и н и п о в і д о м л е н ь через нього, та д о с я г н е н н ю їх місць призна-
449

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


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

12.9.3. Статичні топологи комунікаційних мереж


багатопроцесорних систем
Статичні (фіксовані) комунікаційні м е р е ж і м а ю т ь о д н о н а п р а в л е н і та д в о н а п р а в л е н і
фіксовані канали з в ' я з к у м і ж п р о ц е с о р а м и . М о ж е б у т и в и д і л е н о два в и д и с т а т и ч н и х ме­
р е ж . Це м е р е ж і з п о в н и м з ' є д н а н н я м ( C C N - completely connected networks) та м е р е ж і з
о б м е ж е н и м з ' є д н а н н я м ( L C N - limited connection networks).
У мережі з п о в н и м з ' є д н а н н я м ( п о в н о з в ' я з н и х м е р е ж а х ) к о ж е н вузол з ' є д н а н и й зі
всіма і н ш и м и вузлами у мережі. М е р е ж а з п о в н и м з ' є д н а н н я м г а р а н т у є ш в и д к у д о с т а в ­
ку повідомлення від будь-якого п о ч а т к о в о г о вузла до б у д ь - я к о г о вузла п р и з н а ч е н н я ,
оскільки йому доведеться п е р е т н у т и л и ш е один к а н а л зв'язку. Так як кожен вузол з'єд­
наний з к о ж н и м і н ш и м вузлом в мережі, о р г а н і з а ц і я о б м і н у п о в і д о м л е н н я м и м і ж вузла­
ми стає п р о с т и м з а в д а н н я м . М е р е ж і з п о в н и м з ' є д н а н н я м є, п р о т е , д о р о г и м и , оскільки
вимагають великої кількості каналів з в ' я з к у для їх п о б у д о в и . Ця незручність стає оче­
видною при великих к і л ь к о с т я х вузлів N . Слід з а з н а ч и т и , щ о ч и с л о каналів з в ' я з к у в
мережі з п о в н и м з ' є д н а н н я м рівне N ( N - l ) / 2 , т о б т о а с и м п т о т и ч н а складність цієї мережі,
в и р а ж е н а кількістю каналів зв'язку, є 0 ( N ) . Часова з а т р и м к а м е р е ж і з п о в н и м з ' є д н а н ­
2

ням, в и р а ж е н а кількістю пересічених зв'язків, є п о с т і й н о ю і рівною 1. М е р е ж а з п о в н и м


з'єднанням, приведена в якості п р и к л а д у на рис. 12.25, м а є N = 6 вузлів. Як результат, д л я
'їх з'єднання п о т р і б н о 15 каналів зв'язку.

Рис. 12.25. Приклад мережі з повним з'єднанням

Мережі з о б м е ж е н и м з ' є д н а н н я м не з а б е з п е ч у ю т ь б е з п о с е р е д н ь о г о з в ' я з к у к о ж н о ­


го вузла з к о ж н и м і н ш и м вузлом мережі. Натомість, комунікації м і ж д е я к и м и вузлами
мають бути здійснені через інші вузли мережі. Д о в ж и н а ш л я х у м і ж вузлами, в и м і р я н а
кількістю каналів зв'язку, які доведеться п е р е т н у т и , є д о в ш о ю , п о р і в н я н о з в и п а д к о м
мереж з п о в н и м з ' є д н а н н я м . Крім того, п р и з а с т о с у в а н н і м е р е ж з о б м е ж е н и м з ' є д н а н н я м
в и н и к а є ще дві і н ш и х п р о б л е м и . Це п о т р е б а п о ш у к у е ф е к т и в н о ї топології к о м у н і к а ц і й ­
ної мережі і п о т р е б а в механізмі м а р ш р у т и з а ц і ї п о в і д о м л е н ь по мережі, поки в о н и не
досягають своїх місць п р и з н а ч е н н я .
Н и ж ч е ці дві п р о б л е м и о б г о в о р ю є т ь с я д е т а л ь н і ш е .
450

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


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

« (а)
Рис. 12.26. Приклади мереж з обмеженим з'єднанням

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


(рис. 12.26 а), в я к о м у к о ж е н вузол з ' є д н а н и й з своїми двома безпосередніми сусідні­
ми вузлами. Два вузли в к і н ц я х масиву з'єднані з своїм є д и н и м безпосереднім сусідом.
Я к щ о вузлу і п о т р і б н о з в ' я з а т и с я з вузлом j, де j>i, то повідомленню від вузла і доводить­
ся п е р е т н у т и вузли і + 1 , і + 2 , j - i . Так само, коли вузлу і п о т р і б н о з в ' я з а т и с я з вузлом), де
i>j, то п о в і д о м л е н н я від вузла і м а є п е р е т н у т и вузли і - 1 , і - 2 , i - j . У найгіршому випадку,
коли вузлу 1 д о в о д и т ь с я в і д п р а в и т и п о в і д о м л е н н я вузлу N, повідомленню доведеться
п е р е т н у т и в сумі N - 1 вузлів, щ о б досягти свого місця п р и з н а ч е н н я . Тому, хоча ліній­
ні м а с и в и є п р о с т и м и і м а ю т ь п р о с т і м е х а н і з м и м а р ш р у т и з а ц і ї , в о н и є повільними. Це
о с о б л и в о в і д ч у в а є т ь с я , коли ч и с л о вузлів N велике. М е р е ж н а а с и м п т о т и ч н а складність
лінійного м а с и в у є O ( N ) і його ч а с о в а а с и м п т о т и ч н а складність є O ( N ) .
Я к щ о о б и д в а вузли в кінцях лінійної м е р е ж і з'єднати, о т р и м а є т ь с я мережа з струк­
т у р о ю к і л ь ц я (рис. 12.26 Ь). Вона м о ж е бути о д н о н а п р а в л е н о ю та двонаправленою, за­
л е ж н о від кількості каналів з в ' я з к у та н а п р я м к у передачі в н и х даних. П р и к л а д о м сис­
тем, в я к и х в и к о р и с т а н о топологію к і л ь ц я , є м е р е ж а Token Ring та система SCI.
Решітчаста (сотова) топологія к о м у н і к а ц і й н о ї мережі (рис. 12.26 с) в загальному є
n - в и м і р н о ю м а т р и ц е ю , я к а м а є К х К , х . . . х К , вузлів, де п - число вимірів мережі, і Кі є
0 п

о с н о в а в и м і р у і. Існує велика кількість сотових мереж, які відрізняються з'єднаннями


вузлів. Н а п р и к л а д , на рис. 12.26 d п о к а з а н а с о т о в о - к і л ь ц е в а мережа, в якій крайні вузли
з а м к н у т і в кільце. Рис. 12.27 показує п р и к л а д сотової мережі р о з м і р о м 3x3x2. Вузол, по­
з и ц і я я к о г о є (і, j, k), з ' є д н а н и й із своїми сусідами з позицією і + 1 , j + І , і к + 1 . Потрібно від-
45 7

значити, що для сотової мережі з N вузлами н а й д о в ш а в і д с т а н ь м і ж д в о м а д о в і л ь н и м и


вузлами п р о п о р ц і й н а № ' , т о б т о ї ї часова а с и м п т о т и ч н а складність є 0 ( № ) .
2 / 2

Рис. 12.27. Приклад решітчастої топології

Багатопроцесорні к о м п ' ю т е р н і системи з сотовою топологією комунікаційної м е р е ж і


є е ф е к т и в н и м и для в и к о н а н н я н а у к о в и х о б ч и с л е н ь . І н ш о ю перевагою сотових м е р е ж є
те, що в о н и м а с ш т а б у ю т ь с я . Велика м а т р и ц я м о ж е б у т и о т р и м а н а з малої без зміни п о ­
р я д к у вузла (кількості входів). Тому багато к о м п ' ю т е р н и х систем з р о з п о д і л е н о ю п а м ' я т ­
тю базуються на т а к и х мережах, н а п р и к л а д система М Р Р ф і р м и Goodyear Aerospace, сис­
тема Paragon фірми Intel, система J-Machine Масачусетського технологічного інституту.
Зіркоподібна топологія (рис. 12.26 е) передбачає о б ' є д н а н н я багатьох вузлів ч е р е з
один ц е н т р а л ь н и й вузол і х а р а к т е р и з у є т ь с я п р о с т о т о ю організації к е р у в а н н я .
В деревовидній мережі, в якій д в і й к о в е д е р е в о , п о к а з а н е на рис. 12.26 f, є ч а с т к о в и м
випадком, я к щ о вузлу на рівні і ( к о р е н е в а в е р ш и н а з н а х о д и т ь с я на рівні 0) п о т р і б н о з в ' я ­
затися з вузлом на рівні j, де i>j і вузол п р и з н а ч е н н я н а л е ж и т ь піддереву того ж к о р е н я ,
то йому доведеться н а п р а в и т и п о в і д о м л е н н я вгору через прохідні вузли рівнів і - 1 , і-2,
j + І , поки в о н о не досягне вузла п р и з н а ч е н н я . Я к щ о вузлу на рівні і п о т р і б н о з в ' я з а т и с я
з і н ш и м вузлом на т о м у ж рівні і (або з вузлом на рівні j Ф І, де вузол п р и з н а ч е н н я нале­
ж и т ь піддереву іншого к о р е н я ) , й о м у доведеться н а п р а в и т и п о в і д о м л е н н я вгору дерева,
поки п о в і д о м л е н н я не досягає в е р ш и н и на рівні 0. Після ц ь о г о п о в і д о м л е н н я доведеться
н а п р а в и т и в н и з від в е р ш и н и , поки в о н о не досягне місця п р и з н а ч е н н я . Слід з а з н а ч и т и ,
що кількість вузлів в м е р е ж і д в і й к о в о г о дерева, що м а є k рівнів, рівна N(k) = 2 - 1. k

М а к с и м а л ь н а глибина мережі д в і й к о в о г о дерева рівна l o g N , де N - число вузлів в


2

мережі. Тому, апаратна а с и м п т о т и ч н а складність цієї .мережі є 0 ( 2 ) і її часова а с и м п т о ­


к

тична складність є 0 ( l o g N ) .
Досить п о п у л я р н и м и є кубічні (рис. 12.26 g) та гіперкубічні топології, які д о з в о л я ю т ь
зменшити часову складність с т а т и ч н и х топологій м е р е ж .
Гіперкубічні мережі м а ю т ь с т р у к т у р у n - м і р н о г о куба, n - м і р н и й куб (гіперкуб п о р я д ­
ку п) визначають як н е о р і є н т о в а н и й г р а ф , що має 2" м і ч е н и х в е р ш и н від 0 до 2 , в я к о м у
Г ;

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


їх адрес відрізняється л и ш е о д н и м бітом. Як п р и к л а д , на рис. 12.28 п о к а з а н и й 4 - м і р н и й
куб.
452

1000 1001 0000 0001


Рис. 12.28. 4-мірний куб

У б а г а т о п р о ц е с о р н і й системі, б а з о в а н і й на гіперкубічній мережі, п р о ц е с о р и розмі­


щ у ю т ь с я у в е р ш и н а х графа. Дуги г р а ф а п р е д с т а в л я ю т ь канали з в ' я з к у м і ж процесора­
ми. Як в и д н о з рисунку, к о ж е н п р о ц е с о р в 4 - м і р н о м у кубі з ' є д н а н и й з ч о т и р м а іншими
п р о ц е с о р а м и . У n - м і р н о м у кубі к о ж н и й п р о ц е с о р має канали з в ' я з к у з п і н ш и м и про­
ц е с о р а м и . О с к і л ь к и в гіперкубі є дуга м і ж з а д а н о ю п а р о ю вузлів л и ш е я к щ о двійкове
п р е д с т а в л е н н я їх а д р е с відрізняється о д н и м бітом, ця властивість забезпечує простий
механізм м а р ш р у т и з а ц і ї п о в і д о м л е н ь . М а р ш р у т п о в і д о м л е н н я , що відправляється з вуз­
ла і та п р и з н а ч е н е д л я вузла j, м о ж е бути з н а й д е н и й ш л я х о м в и к о н а н н я над двійковим
п р е д с т а в л е н н я м а д р е с і Taj операції в и к л ю ч н о г о А Б О ( X O R ) . Я к щ о результат виконання
операції X O R п р и в о д и т ь до 1 в заданій бітовій позиції, то п о в і д о м л е н н я має бути посла­
н и м п о к а н а л у зв'язку, я к и й о х о п л ю є в і д п о в і д н и й в и м і р . Н а п р и к л а д , я к щ о повідомлен­
ня п о с л а н е від п о ч а т к о в о г о (S) вузла 0101 до вузла п р и з н а ч е н н я (D) 1011, то результатом
операції X O R буде 1110. Це означатиме, що п о в і д о м л е н н я буде п о с л а н о л и ш е уздовж
вимірів 2, 3, і 4 (рахуючи с п р а в а наліво) д л я того, щ о б п р и б у т и до місця призначення.
П о р я д о к , в я к о м у п о в і д о м л е н н я п е р е т и н а є т р и в и м і р и , не має в а ж л и в о г о значення. Як
тільки п о в і д о м л е н н я п е р е т и н а є т р и в и м і р и в б у д ь - я к о м у порядку, в о н о досягне місця
п р и з н а ч е н н я . Три м о ж л и в и х н е п е р е с і ч н и х м а р ш р у т и , які м о ж е п р о й т и повідомлення у
н а в е д е н о м у п р и к л а д і , показані в и д і л е н и м и л і н і я м и на рис. 12.28. Непересічні маршрути
не м а ю т ь б у д ь - я к и х спільних каналів зв'язку.
У n - м і р н о м у кубі к о ж е н вузол м а є п о р я д о к п. П о р я д о к вузла визначений як число
каналів зв'язку, що в х о д я т ь в вузол. Верхня м е ж а кількості непересічних каналів в п-
м і р н о м у кубі рівна п. Гіперкуб п р е д с т а в л я є т ь с я як л о г а р и ф м і ч н а архітектура. Це тому,
що м а к с и м а л ь н е ч и с л о каналів зв'язку, які п о в і д о м л е н н ю доведеться п е р е т н у т и , щоб до­
сягти м і с ц я п р и з н а ч е н н я , в n - м і р н о м у кубі, що містить N=2" вузлів, рівне l o g N . 2

О д н а з б а ж а н и х о с о б л и в о с т е й г і п е р к у б і ч н и х м е р е ж - р е к у р с и в н а п р и р о д а їх побу­
дови. n - м і р н и й куб м о ж е б у т и п о б у д о в а н и й на основі двох підкубів, кожен з я к и х має
п о р я д о к п - 1 , ш л я х о м з ' є д н а н н я вузлів подібних адрес в обох підкубах. Так 4-мірний куб,
п о к а з а н и й на рис. 12.28, п о б у д о в а н и й на основі двох підкубів, п о р я д о к кожного з яких
р і в н и й т р ь о м . П о т р і б н о відзначити, що п о б у д о в а 4-мірного куба на основі двох 3-мірних
кубів в и м а г а є з б і л ь ш е н н я п о р я д к у к о ж н о г о вузла.
С и с т е м а i P S C ф і р м и Intel є п р и к л а д о м б а з о в а н о ї на гіперкубічній комунікаційній ме­
р е ж і к о м е р ц і й н о ї б а г а т о п р о ц е с о р н о ї к о м п ' ю т е р н о ї системи.
453

12.9.4. Шинні динамічні комунікаційні мережі багатопроцесорних систем


Як ми вже в к а з у в а л и , динамічні к о м у н і к а ц і й н і м е р е ж і б а г а т о п р о ц е с о р н и х систем
м о ж у т ь бути одно- та б а г а т о ш и н н и м и . На рис. 12.29 н а в е д е н о п р и к л а д в и к о р и с т а н н я од-
н о ш и н н о ї комунікаційної мережі, яка є н а й п р о с т і ш и м в а р і а н т о м з м о ж л и в и х з ' є д н а н ь . В
з а г а л ь н о м у вигляді така система в к л ю ч а є N п р о ц е с о р і в Р, к о ж е н з я к и х має свою л о к а л ь ­
ну пам'ять, які з'єднані спільною ш и н о ю . Всі п р о ц е с о р и через ш и н у взаємодіють з спіль­
ною пам'яттю. Т и п о в и й р о з м і р т а к и х систем - від о д н о г о до 50 процесорів. Він визнача­
ється потрібною п р о п у с к н о ю здатністю ш и н и , яка п р и х о д и т ь с я на один п р о ц е с о р . Тому
описана архітектура, при п р о с т о т і р о з ш и р е н н я , о б м е ж е н а п р о п у с к н о ю здатністю ш и н и ,
п о якій одночасно м о ж е п р о в о д и т и обмін і н ф о р м а ц і є ю л и ш е о д и н п р о ц е с о р . С к л а д н і с т ь
цієї мережі м о ж е бути оцінена н а с т у п н и м ч и н о м : а п а р а т н а а с и м п т о т и ч н а складність, в и ­
ражена кількістю магістралей, є О ( І ) , часова а с и м п т о т и ч н а складність, я к а в и м і р ю є т ь с я
кількістю з а т р и м о к , є 0(г\ ), де N - кількість п р о ц е с о р і в .
т

Рі "2 ^N- 1 PN

І 1 Л.
Шина

Спільна пам'ять I/O

Рис. 12.29. Одношинна багатопроцесорна система

В табл. 12.1 наведено х а р а к т е р и с т и к и д е я к и х к о м е р ц і й н и х о д н о ш и н н и х б а г а т о п р о ­


цесорних к о м п ' ю т е р н и х систем.
Таблиця 12.1

Максимальна Пропускна
кількість Ємність
Тип Частота здатність
процесорів пам'яті
Назва системи процесора шини
HP 9000 К.640 4 РА-8000 180 M H z -UW6 M B 460 MB/s
IBM RS/6000 R40 8 PowerPC 604 112 MHz 2.048 MB 1.800 MB/s
Sim Enterprise 6000 30 UltraSPARC 1 167 МП/. 30.720 MB 2.600 MB/s

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


р о з ш и р е н н я м о д н о ш и н н и х систем. В ц ь о м у в и п а д к у м о ж л и в і кілька варіантів схем з'єд­
нань. Серед них м о ж н а відзначити наступні:
• багатошинна комунікаційна м е р е ж а з п о в н и м з ' є д н а н н я м блоків пам'яті (multiple
bus with full bus-memory connection),
• багатошинна комунікаційна м е р е ж а з о д н и м з ' є д н а н н я м блоків пам'яті (multiple
bus with single bus memory connection),
• багатошинна к о м у н і к а ц і й н а м е р е ж а з ч а с т к о в и м з ' є д н а н н я м блоків пам'яті (multi­
ple bus with partial bus-memory connectiez),
• багатошинна к о м у н і к а ц і й н а м е р е ж а з б а з о в а н и м на класах з ' є д н а н н я м блоків
пам'яті (multiple bus with class-based memory connection).
454

В п е р ш о м у варіанті з ' є д н а н н я , н а в е д е н о м у на рис. 12.30, всі блоки пам'яті під'єднані


до всіх ш и н . Тут, як і на н а с т у п н и х р и с у н к а х , п р и й н я т о , що кількість процесорів N = 6,
кількість модулів п а м ' я т і М = 4, кількість ш и н В = 4.
р, р,

I І .
1 II І і і, і А її 1

г
і і
^ г ' 1 1
і1 іг 1 і , 11 і г
і^
і
іГ
І
!* ч
1 1п
і 1

г
1

V Ч

І мп 2

Рис. 12.30. Багатошинна комунікаційна мережа з повним з'єднанням блоків пам'яті

Цей варіант з ' є д н а н н я є д о с и т ь с к л а д н и м та д о р о г и м , оскільки в и м а г а є великої кіль­


кості ш и н , р е а л і з а ц і я я к и х в и м а г а є з н а ч н и х а п а р а т н и х ресурсів.
В д р у г о м у варіанті (рис. 12.31) к о ж н и й м о д у л ь п а м ' я т і під'єднаний до деякої однієї
шини.

ї
і і і 1 !6

1 1
У ' 1У
і 1
<

< 1 •
А/ м 4

Рис. 12.31. Багатошинна комунікаційна мережа з одним з'єднанням блоків пам'яті

Тут с т р у к т у р а к о м у н і к а ц і й н о ї м е р е ж і с п р о щ у є т ь с я , однак м о ж л и в і конфлікти досту­


пу до блоків пам'яті.
В т р е т ь о м у в а р і а н т і (рис. 12.32) к о ж е н м о д у л ь п а м ' я т і під'єднаний не до всіх, як в
п е р ш о м у варіанті, а до деякої групи ш и н (в д а н о м у в и п а д к у до двох ш и н ) .

Р 7 Р 3

і и >*• І І11 і * нн і 1 іи
>і і
II • 1 і кИ

У і
^
Т І г г Уг
г

1
і
і к - і
1 *
— 1 • іг 1
11

' і іг 'Г і• 1
Л/. Л/ 4

Рис. 12.32. Багатошинна комунікаційна мережа з частковим з'єднанням блоків пам'яті

Це д о з в о л я є з м е н ш и т и кількість м о ж л и в и х конфліктів д о с т у п у до блоків пам'яті.


455

В четвертому варіанті (рис. 12.33) модулі п а м ' я т і з г р у п о в а н і в класи, які під'єднані до


свого набору ш и н .

1_!
І/.
іт '
Класі Клас 2 Клас З

Рис. 12.33. Багатошинна комунікаційна мережа з базованим на класах з'єднанням блоків пам'яті

Тут клас - це довільно в и б р а н а м н о ж и н а модулів пам'яті. Такий підхід т а к о ж д о ­


зволяє з м е н ш и т и кількість конфліктів ш л я х о м в р а х у в а н н я о с о б л и в о с т е й в и к о н у в а н и х
задач (інтенсивності обміну п р о ц е с о р і в з п а м ' я т т ю ) . М о ж н а х а р а к т е р и з у в а т и цей тип
мережі в и к о р и с т о в у ю ч и кількість необхідних з в ' я з к і в і н а в а н т а ж е н н я на к о ж н у шину, як
показано в табл. 12.2, де наведені х а р а к т е р и с т и к и р о з г л я н у т и х б а г а т о ш и н н и х з ' є д н а н ь .
У цій таблиці к п р е д с т а в л я є ч и с л о класів; g п р е д с т а в л я є ч и с л о ш и н на групу, і М] пред­
ставляє число модулів пам'яті в класі}.
Таблиця 12.2

Тип з'єднання Кількість з'єднань Навантаження на шину і


З повним з'єднанням
З одним з'єднанням BN + M
З частковим з'єднанням Ы + М/к
З базованим на класах
з'єднанням Вії + М£1 + В к)

В цілому багатошинна б а г а т о п р о ц е с о р н а організація м а є кілька б а ж а н и х о с о б л и в о с ­


тей, таких як висока надійність і легкість н а р о щ у в а н н я . Коли кількість ш и н є м е н ш о ю
за кількість модулів пам'яті (або кількості п р о ц е с о р і в ) , з м а г а н н я за володіння ш и н о ю
посилюється.
Важливим п и т а н н я м в б а г а т о ш и н н і й б а г а т о п р о ц е с о р н і й організації є ш и н н а синх­
ронізація. І н ф о р м а ц і я м о ж е бути передана п о ш и н і с и н х р о н н о або а с и н х р о н н о . Час д л я
будь-якої передачі по с и н х р о н н і й ш и н і в і д о м и й наперед. П р и п р и й м а н н і та відправленні
інформації через ш и н у п о т р і б н о брати до уваги час передачі. О р г а н і з а ц і я а с и н х р о н н о ї
шини, з другого боку, з а л е ж и т ь від н а я в н о с т і д а н и х і готовності п р и с т р о ю ініціювати
шинні операції.
В о д н о ш и н н і й б а г а т о п р о ц е с о р н і й системі потрібен ш и н н и й а р б і т р а ж для в и р і ш е н н я
ш и н н о г о конфлікту, я к и й м а є місце, коли більш н і ж один п р о ц е с о р к о н к у р у є за о в о л о ­
діння шиною. В д а н о м у в и п а д к у п р о ц е с о р и , які х о ч у т ь в и к о р и с т о в у в а т и шину, подають
з а п и т и до ш и н н о ї а р б і т р а ж н о ї логіки. А р б і т р вирішує, в и к о р и с т о в у ю ч и схему п р і о р и т е ­
ту, я к о м у п р о ц е с о р у буде н а д а н о д о с т у п до ш и н и п р о т я г о м п е в н о г о часового інтервалу.
456

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


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

Контролер Контролер Контролер


шини шини шини

12.

Надання шини

Ш ина зайнята

Надання шини

Ш ина зайнята

Рис. 12.34. Механізм квітування шини: а - схема, b - часова діаграма

Для п р и й н я т т я р і ш е н н я я к о м у п р о ц е с о р у надати к о н т р о л ь над ш и н о ю , ш и н н а ар­


б і т р а ж н а логіка в и к о р и с т о в у є в б у д о в а н у схему пріоритету. Використовують різні типи
схем пріоритету, н а п р и к л а д в и п а д к о в и й пріоритет, о д н а к о в и й пріоритет, пріоритет най­
довше не використовуваного LRU.
У о д н а к о в о м у пріоритеті, коли два або більше з а п и т і в з р о б л е н о , є рівний шанс у
будь-якого з них. П р и в и к о р и с т а н н і п р а в и л а L R U н а й в и щ и й пріоритет надано процесо­
ру, я к и й не в и к о р и с т а в ш и н у п р о т я г о м н а й д о в ш о г о часу.

12.9.5. Комутуючі динамічні комунікаційні мережі


багатопроцесорних систем

12.9.5.1. Типи комутуючих динамічних комунікаційних мереж

В м е р е ж а х ц ь о г о т и п у з ' є д н а н н я м і ж п р о ц е с о р а м и та м о д у л я м и пам'яті здійснюється


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

У строго н е б л о к у ю ч и х м е р е ж а х в и н и к н е н н я б л о к у в а н ь п р и н ц и п о в о н е м о ж л и в е через
з а с т о с о в а н у топологію. До т а к и х н а л е ж а т ь м а т р и ч н а м е р е ж а та м е р е ж а Клоса. Неблоку-
ю ч и м и в ш и р о к о м у сенсі н а з и в а ю т ь топології, в я к и х к о н ф л і к т и п р и б у д ь - я к и х з ' є д н а н ­
н я х н е в и н и к а ю т ь тільки при д о т р и м а н н і п е в н о г о а л г о р и т м у м а р ш р у т и з а ц і ї .
У неблокуючих мережах з реконфігурацією також можлива реалізація з'єднання
між д о в і л ь н и м и вхідними і в и х і д н и м и т е р м і н а л а м и , але д л я ц ь о г о необхідно з м і н и т и
настройку комутаторів мережі та маршрут зв'язку між сполученими терміналами. При­
кладами т а к и х м е р е ж служать м е р е ж і Бенеша, Бетчера, " М е м ф і с " й інші.
У б л о к у ю ч и х мережах, я к щ о яке-небудь з ' є д н а н н я в ж е в с т а н о в л е н е , це м о ж е стати
п р и ч и н о ю н е м о ж л и в о с т і в с т а н о в л е н н я і н ш и х з ' є д н а н ь . Д о б л о к у ю ч и х належать м е р е ж і
"Баньян", "Омега", n - к у б і інші.
Існує т р и базові топології к о м у т у ю ч и х д и н а м і ч н и х к о м у н і к а ц і й н и х м е р е ж багато­
п р о ц е с о р н и х систем: к о о р д и н а т н і , о д н о я р у с н і та багатоярусні.

12.9.5.2. Координатна мережа

К о о р д и н а т н а мережа з а б е з п е ч у є о д н о ч а с н е з ' є д н а н н я всіх входів з усіма виходами.


Вона містить к о м у т у ю ч и й елемент (КЕ) на п е р е т и н і б у д ь - я к и х д в о х ліній. На рис. 12.35
наведено п р и к л а д к о о р д и н а т н о ї м е р е ж і р о з м і р о м 8x8. В ц ь о м у в и п а д к у КЕ з н а х о д я т ь с я
на к о ж н о м у з 64 перетинів. На р и с у н к у п о к а з а н о в и п а д о к , коли з а б е з п е ч у є т ь с я о д н о ­
часне з ' є д н а н н я між входами Р. та в и х о д а м и M д л я і від 1 до 8. Д в а м о ж л и в и х стани КЕ
показано в н и з у рисунка: п р я м о та навхрест.
В з а г а л ь н о м у для к о о р д и н а т н о ї м е р е ж і р о з м і р о м N x N кількість К Е рівна N , т о б ­ 2

то апаратна а с и м п т о т и ч н а складність, в и р а ж е н а кількістю КЕ, є 0 ( N ) , тоді як часова 2

а с и м п т о т и ч н а складність є 0(1).
П о т р і б н о з а у в а ж и т и , що к о о р д и н а т н а м е р е ж а є н е б л о к у ю ч о ю .
мі м2 ИЗ М4 м5 МИ М7 Ш

гh г1 r1 r"1 r "1 Г1 rh
LJ LJ LJ l_ J LJ LJ LJ L
PI

їм Г П Г ~i r ~| r "І r -i r
92 L Jh Lг J LJ LJ LJ LJ Lr ^J
га
"
г "1 г 1
LJ LJ
r1
LJ
-i
Ґ "1
LJ
H
Ґ
L і 4
іp r
-i
Ґ
^
H
1
J LҐ J
"1
LJ LJ LJ LJ LA h1 hj tT
-

rП г ~i rі ?1 Г1 r1 Г -] r1
n L
J LJ LJ LЛ LJ LJ LJ t J
Р6 гІ r 4 rП
LГ У
"1 rT r1 Г
1
LJ L1
J ?
Lr J td tJ h r—
г1 r rt 1
Р7
LJ LjГ
V Г 1J L J1 Гt J"І Lr "1
d Lr "іJ J—
PS £b Ґ1 Ґ1 r ct p1 Г -|
p tj l_ У3 -J
г L,

(а) (Ь)
Рис. 12.35. Координатна мережа розміром 8x8 та два можливих стани КЕ:
а - прямо та Ь - навхрест
458

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


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

12.9.5.3. Матрична одноярусна комутуюча мережа

М а т р и ч н а о д н о я р у с н а к о м у т у ю ч а м е р е ж а є н а й ш в и д ш о ю . Вона забезпечує реаліза­


цію всіх т и п і в з ' є д н а н ь і є н е б л о к у ю ч о ю . С т р у к т у р а м а т р и ч н о ї одноярусної комутуючої
м е р е ж і наведена н а р и с . 12.36.

МП
о
... 0

МП
1

МП
М-1
М-1

1
Км-1 Кі Ко
Рис. 12.36. Структура матричної одноярусної комутуючої мережі

Дана м е р е ж а складається з М 1М-входових мультиплексорів, які керуються М кодами


К,0 ..., К , р о з р я д н і с т ь к о ж н о г о з я к и х рівна к ^ И . К о ж н и й з мультиплексорів реалі­
м

зується на основі N д в о в х о д о в и х схем І, о б ' є д н а н и х Ы-входовою схемою А Б О . Тому для


комутації N входів на М виходів дана к о м у н і к а ц і й н а м е р е ж а п о в и н н а містити М груп
по N д в о в х о д о в и х схем І, о б ' є д н а н и х Ы-входовою схемою А Б О . Витрати о б л а д н а н н я на
двовходову схему І, як і на д в о в х о д о в у схему А Б О , рівні о д н о м у вентилю. П о з н а ч и м о за­
т р и м к у одного в е н т и л я через 1. Тоді в и т р а т и о б л а д н а н н я на дану комунікаційну мережу,
без в р а х у в а н н я в и т р а т на к е р у в а н н я , с к л а д у т ь М ^ , ^ = М(2>1-1) вентилів, а затримка
Т мм = ( Ь Н + 1 ) і .
К 8

12.9.5.4. Багатоярусні блокуючі комутуючі мережі

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

а Ь с а
Рис. 12.36. Можливі комбінації з'єднання входів з виходами двовходового комутаційного елемента:
а - прямо, Ь - навхрест, с - розширення зверху, сі - розширення знизу

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


ваних на д в о х о д о в и х КЕ, та о б ' є д н а н и х м і ж ' я р у с н и м и з в ' я з к а м и ( М З ) , як це п о к а з а н о
на рис. 12.37. Ці з в ' я з к и м о ж у т ь в і д о б р а ж а т и о д н у з м о ж л и в и х ф у н к ц і й м а р ш р у т и з а ц і ї ,
таку як б а т е р ф л я й , куб і т. д.

оо о

о МЗ о МЗ о
о 1 о К-1 о
о о о

КЕ КЕ КЕ

Рис. 12.37. Багатоярусна комутуюча комунікаційна мережа

Існує цілий р я д б а г а т о я р у с н и х к о м у т у ю ч и х к о м у н і к а ц і й н и х м е р е ж . С т р у к т у р а ш и ­
роко р о з п о в с ю д ж е н и х топологій м е р е ж " Б а н ь я н " та "Омега" для N=8 п о к а з а н а відпо­
відно на рис. 12.38 а та на рис. 12.38 Ь. Вона м і с т и т ь в к о ж н о м у з я р у с і в по N / 2
КЕ і N каналів зв'язку. Я к щ о к о ж е н КЕ в и к о н у є п е р е м и к а н н я п р я м о і навхрест, то т а к а
комунікаційна мережа м о ж е в и к о н а т и 2 ° п е р е с т а н о в о к , що істотно м е н ш е за N1 пе­
№ 2 1 8 К

рестановок, м о ж л и в и х в неблокуючій мережі. П р о т е ті п е р е с т а н о в к и , я к і в о н а в и к о н у є ,


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

по 4 8 12 •110

ш • 111

а Ь
Рис. 12.38. Багатоярусна комунікаційна мережа 8x8: а - "Баньян" та Ь - "Омега'
460

У топології " Б а н ь я н " (рис. 12.38 а) м і ж к о ж н и м входом і в и х о д о м існує л и ш е один


шлях. М е р е ж а МхМ(М = 2 ) с к л а д а є т ь с я з І Ч т / 2 к о м у т у ю ч и х елементів. Д л я керування
т

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


мер вузла п р и з н а ч е н н я . Дана м е р е ж а н а л е ж и т ь до м е р е ж з с а м о м а р ш р у т и з а ц і є ю , оскіль­
ки адреса п у н к т у п р и з н а ч е н н я не т і л ь к и в и з н а ч а є м а р ш р у т п о в і д о м л е н н я до потрібно­
го вузла, але і в и к о р и с т о в у є т ь с я для к е р у в а н н я п р о х о д ж е н н я м п о в і д о м л е н н я по цьому
м а р ш р у т у . К о ж е н КЕ, до я к о г о п о т р а п л я є пакет, п р о г л я д а є один біт адреси і, з а л е ж н о від
його з н а ч е н н я , н а п р а в л я є п о в і д о м л е н н я на вихід 1 а б о 2. Стан КЕ п е р ш о г о ярусу мережі
(лівий с т о в п е ц ь КЕ) в и з н а ч а є т ь с я с т а р ш и м бітом адреси вузла п р и з н а ч е н н я . Середнім
я р у с о м (другий с т о в п е ц ь ) у п р а в л я є середній біт адреси, а третім я р у с о м (правий стов­
пець) - м о л о д ш и й біт. Я к щ о з н а ч е н н я біта рівне 0, то п о в і д о м л е н н я пропускається через
верхній вихід КЕ, а п р и о д и н и ч н о м у значенні - через н и ж н і й . На р и с у н к у показаний
м а р ш р у т п о в і д о м л е н н я з вхідного вузла 2 (010) до вихідного вузла 5 (101).
Топологія " О м е г а " є п і д к л а с о м топології "Баньян". Ці топології досить популярні че­
р е з те, що к о м у т а ц і я з а б е з п е ч у є т ь с я п р о с т и м и КЕ, що п р а ц ю ю т ь з однаковою швид­
кістю, а п о в і д о м л е н н я передаються п а р а л е л ь н о . Крім того, великі м е р е ж і м о ж у т ь бути
п о б у д о в а н і з м е р е ж м е н ш о г о розміру.

12.9.5.5. Багатоярусні неблокуючі комутуючі мережі з реконфігурацією

Р о з г л я н е м о далі багатоярусні К М М , що з а б е з п е ч у ю т ь п о в н и й набір з N1 перестано­


вок. Дані К М М з а б е з п е ч у ю т ь одночасне б е з к о н ф л і к т н е з ' є д н а н н я довільного виходу з
д о в і л ь н и м входом, і т о м у п р е д с т а в л я ю т ь п і д в и щ е н и й інтерес.
О д н і є ю з н а й б і л ь ш в і д о м и х і в и в ч е н и х К М М даного класу є К М М Бенеша, структура
якої д л я N=8 наведена на рис. 12.39.

Рис. 12.39. Багатоярусна небпокуюча комутуюча мережа Бенеша з реконфігурацією

Д л я даної м е р е ж і W K M M= N ( l o g N - 1/2) д в о в х о д о в и х КЕ, або W


2 K M M = 3 N ( l o g N - l ) вен­
2

тилів, кількість ярусів m = 2 l o g N - l , а з а т р и м к а T = 2 ( 2 l o g N - l ) t .


2 KMM 2

Існує ц і л и й с п е к т р і н ш и х н е б л о к у ю ч и х к о м у т у ю ч и х м е р е ж із реконфігурацією з по­


д і б н и м и до в и щ е о п и с а н о ї м е р е ж і ф у н к ц і я м и . Так, у К М М Ваксмана, що є модифікацією
м е р е ж і Бенеша, кількість КЕ з м е н ш е н а на N / 2 - 1 . К М М Ф а н я є багатоярусною комбіна­
ц і й н о ю схемою зсуву. Кількість ярусів для N = 2 рівне Р + 1 . У п е р ш о м у ярусі забезпечу­
P

ється з с у в к о ж н о г о в х о д у на +/-2 " р о з р я д і в , в д р у г о м у ярусі - на +/-2 " р о з р я д і в і т. д.


Р 1 Р 2

На К М М з N входами необхідно N (log N+l) т р и в х о д о в и х КЕ, п р и ч о м у на к о ж н и й КЕ


2

необхідно 15 в е н т и л і в , а його з а т р и м к а рівна 3t. Для даної К М М W K M M= 15N(log N + 1)


2

вентилів, T R M M = 3(log N + 1) t. Недолік К М М Ф а н я - складність к е р у в а н н я і нерегуляр­


2

ність з в ' я з к і в . У К М М Каутца, с т р у к т у р а якої д л я N=6 наведена на рис. 12.40, витрати


о б л а д н а н н я рівні W K M M = N ( N - l ) / 2 д в о в х о д о в и х КЕ, а б о W = 3N(N-1) вентилів, а за­
тримка Т = 2(2N-3) t, я к а в и з н а ч а є т ь с я сумою з а т р и м о к КЕ по н а й д о в ш о м у шляху
п р о х о д ж е н н я даних. П е р е в а г а даної м е р е ж і - однорідність і регулярність.
461

100 101 111 ООО 110 010

ООО

001

010

011

1 1
100

I— 101

Рис. 12.40. Структура КММ Каутца для п=6

Одночасне довільне з'єднання всіх виходів К М М з всіма входами забезпечують К М М ,


створені на базі структур сортувальних мереж, що запропоновано та описано в працях авто­
ра даної книги. Потрібно відзначити, що можна синтезувати велику кількість структур бага­
тоярусних К М М на базі сортувальних мереж з кількістю ярусів від logjN^ogjN+l)^ до N - 1 .
Вибір конкретної с т р у к т у р и з а л е ж и т ь від в и м о г по швидкодії, о б м е ж е н ь за апаратною
складністю, а також, м о ж л и в о , і обмежень на топологію К М М . Розглянемо два крайні в и ­
падки даних структур. С т р у к т у р а К М М мінімальної швидкодії з даного класу, н а з в е м о її
крайньою зліва, аналогічна структурі відповідного графа с о р т у в а н н я (рис. 12.41 а), має
характеристики: W = 6(3'°s - 2'°s ) вентилів, T
K M M
N N
= 2 ( N - l)t. Ш в и д ш а К М М , н а з в е м о
R M M

її крайньою справа, відповідна графу с о р т у в а н н я Бетчера (рис. 12.41b), має х а р а к т е р и с т и ­


ки: W = 6 2'°s - (log N - log N + 4) - 1 вентилів, T
m M
N 2 2
= l o g N (logN + l)t.
R M M

ь
Рис. 12.41. КММ, створені на базі структур сортувальних мереж:
а - крайня зліва, Ь - крайня справа
462

П р о в е д е м о п о р і в н я н н я р о з г л я н у т и х б а г а т о я р у с н и х неблокуючих к о м у т у ю ч и х ме­
р е ж з р е к о н ф і г у р а ц і є ю за а п а р а т н о ю та часовою с к л а д н о с т я м и . В табл. 12.3 наведено
кількість КЕ та кількість ярусів з а л е ж н о від числа входів N р о з г л я н у т и х К М М . Видно,
що н а й в и г і д н і ш и м и за д а н и м и к р и т е р і я м и є К М М Бенеша і г р а н и ч н а справа К М М на
основі с о р т у в а л ь н о ї м е р е ж і Бетчера.
Таблиця 12.3

Тип мережі Кількість КЕ Кількість ярусів


Бенеша N ( l o g N - 1/2) m=2log,N-l
Каутца N(N-l)/2 2N-3
Фаня 5/3N(log,N + 1) log N + 1
Ваксмана N ( l o g N - 1) m=2log,N-l
Сортувальна крайня зліва N-1
Сортувальна крайня справа 2'°6N-2(i 2o g N _ i o g N + 4 ) logN(logN+ 1).2

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


керуючий код для кожного з N мультиплексорів (приймемо, що кількість входів К М М рівна
кількості виходів) займає N розрядів. Він дешифрується дешифратором мультиплексора
і пропускає на вихід К М М інформацію з необхідного входу. У багатоярусних К М М кількість
бітів керуючої інформації також рівна № о § N. але в них log N-poзpядний код рухається ра­ 2

з о м з інформаційним кодом і настроює КЕ на необхідний вид перемикань. Раніше був опи­


саний п р и н ц и п керування багатоярусною мережею "Баньян" (рис. 12.38а). Подібно в КММ
"узагальнений куб" тег Т = Т Т . . Т ф о р м у є т ь с я як сума за модулем два двійкових номерів
т т Г 0

джерела 5 = 5 5 „.Б і приймача О = Г) Г5 —О , тобто Т = 8 + Б. Кожний розряд тега посту­


т т 1 0

пає на відповідний його номеру КЕ і настроює його на р е ж и м роботи прямо, якщо Т =0, або
навхрест, я к щ о Т.=1.
Е ф е к т и в н о р о з в ' я з у є т ь с я п и т а н н я к е р у в а н н я в К М М , п о б у д о в а н и х на базі сортуваль­
н и х м е р е ж , що з а п р о п о н о в а н о та о п и с а н о в п р а ц я х автора даної книги. В цьому випад­
ку КЕ, спочатку п р а ц ю ю ч и в р е ж и м і с о р т у в а н н я , н а л а ш т о в у є т ь с я на необхідний р е ж и м
п е р е м и к а н н я , а потім п р а ц ю є в р е ж и м і комутації. У р е ж и м і с о р т у в а н н я на входи К М М
п о с т у п а ю т ь а д р е с и виходів, з я к и м и дані входи п о в и н н і бути з'єднані. Дані адреси ру­
х а ю т ь с я по елементах м е р е ж і і с о р т у ю т ь с я , а в к о ж н о м у елементі запам'ятовується стан
керуючого коду ( р о з р я д у ) . П р и ц ь о м у н е м а є п о т р е б и в и к о р и с т о в у в а т и окремі ш и н и для
подачі к е р у ю ч и х сигналів на к о м у т у ю ч і елементи. На рис. 12.41 ж и р н о ю лінією показано
о д и н із м а р ш р у т і в п р и подачі на вхід м е р е ж і наведених керуючих кодів.
П р о в е д е н и й в и щ е аналіз д о з в о л я є з р о б и т и н а с т у п н і в и с н о в к и :
• о д н о я р у с н і м а т р и ч н і К М М в і д р і з н я ю т ь с я г р а н и ч н о високою швидкодією, проте
м а ю т ь недостатню надійність, н е р е г у л я р н у структуру, в и м а г а ю т ь здійснення дуже вели­
кої кількості з в ' я з к і в м і ж е л е м е н т а м и , що у т р у д н ю є їх реалізацію. Крім того, в о н и мають
в е л и к у а п а р а т н у складність;
• багатоярусні К М М в і д р і з н я ю т ь с я р е г у л я р н і с т ю і однорідністю с т р у к т у р и , а також
л о к а л ь н і с т ю зв'язків, що о с о б л и в о в а ж л и в о при їх реалізації у вигляді НВІС. Крім того,
в більшості с т р у к т у р б а г а т о я р у с н и х К М М вихід з ладу одного або декількох КЕ практич­
но не в п л и в а є на їх працездатність;
463

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

12.9.5.6. Багатоярусні неблокуючі комутуючі мережі

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


рів, що містить не м е н ш е трьох ярусів, м о ж е мати х а р а к т е р и с т и к и неблокуючої мережі.
М е р е ж а Клоса з т р ь о м а ярусами, п о к а з а н а на рис. 12.42, м і с т и т ь г к о о р д и н а т н и х ко­
]

мутаторів у вхідному ярусі, т к о о р д и н а т н и х к о м у т а т о р і в в п р о м і ж н о м у ярусі і г ко­ 2

о р д и н а т н и х к о м у т а т о р і в у в и х і д н о м у ярусі. В к о ж н о г о к о м у т а т о р а вхідного я р у с у є п ]

входів і т виходів - по о д н о м у виходу на к о ж н и й к о о р д и н а т н и й к о м у т а т о р п р о м і ж н о г о


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

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


і п виходами. Звідси зрозуміло, що числа гц.п^г,,^, і т повністю в и з н а ч а ю т ь мережу.
2

Число входів мережі N = г п., а виходів - М = г л і . 2

З в ' я з к и всередині складеного к о м у т а т о р а о р г а н і з о в а н і з а н а с т у п н и м и п р а в и л а м и :


• к-й вихід і-го вхідного
к о м у т а т о р а з ' є д н а н и й з і-м
входом к-го п р о м і ж н о г о к о ­ г1 г т г -| Г і
J [_ J 1_ J [_ J
мутатора;
000 [7
1 Г"і г "1 г1
• к-й вхід )-го вихідного г.г J \- J |_

комутатора з ' є д н а н и й з ]-м гт г1 Ґт г


1- J 1J 1J 1 і
виходом к-го п р о м і ж н о г о ко­
мутатора.
Ц г1 гп г 1
J 1«
и иJ
Кожен модуль першо­
го і третього ярусів м е р е ж і
з'єднаний з к о ж н и м модулем
другого її ярусу.
Хоча в даній топології за­
безпечується шлях від будь-
якого входу до будь-якого
виходу, відповідь на питання,
чи буде мережа неблокуючою,
залежить від числа п р о м і ж ­
них ланок. Клос довів, що по­
дібна мережа є неблокуючою,
я к щ о кількість координатних
комутаторів в п р о м і ж н о м у
ярусі т задовольняє умові:
т = п + п - 1. Я к щ о п = п ,
] 2 [ 2

то матричні перемикачі в п р о ­
міжному ярусі є п о в н и м и ко­
ординатними комутаторами і Рис. 12.42. Триярусна мережа Клоса
464

критерій неблокованості набуває вигляду: m = 2п - 1 . За умови m = п м е р е ж у Клоса можна 2

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


стає блокуючою.
К о м п ' ю т е р н і с и с т е м и , в я к и х з ' є д н а н н я р е а л і з о в а н і відповідно до топології Клоса,
в и п у с к а ю т ь багато фірм, з о к р е м а Fujutsu, Nippon, Hitachi.
На з а в е р ш е н н я в табл. 12.4 н а в е д е н о п о р і в н я н н я швидкодії в и щ е р о з г л я н у т и х дина­
мічних комунікаційних мереж.
Таблиця 12.4

Тип Затримка Ціна Наявність


мережі мережі (складність) бпокуианмя

Одношинна
Багатошинна
wo
(XmN)
0(1) С
С
от
Багатоярусна OtN lag /V) Є
Координатна Oil) 0{N )2
Немає

12.10. Короткий зміст розділу


У розділі р о з г л я н у т і п и т а н н я п о д а л ь ш о г о п і д в и щ е н н я п р о д у к т и в н о с т і комп'ютерів
ш л я х о м с т в о р е н н я п а р а л е л ь н и х к о м п ' ю т е р н и х систем. Д о т а к и х систем належать я к ба­
г а т о п р о ц е с о р н і к о м п ' ю т е р н і с и с т е м и , в я к и х в и к о р и с т о в у є т ь с я паралелізм розподілу за­
дач на в е л и к у кількість вузлів о б р о б к и , так і к о м п ' ю т е р н і м е р е ж і , які м а ю т ь іншу ф о р м у
п а р а л е л і з м у - м е р е ж у с т р у к т у р н о а в т о н о м н и х к о м п ' ю т е р і в . Н а в е д е н і основні п о л о ж е н н я
класифікації к о м п ' ю т е р н и х систем, з а п р о п о н о в а н і Ш о р о м т а Фліном. Подано відповід­
н і к л а с и ф і к а ц і я м с т р у к т у р и к о м п ' ю т е р н и х систем, з о к р е м а відповідні з а п р о п о н о в а н і й
Ф л і н о м класифікації с т р у к т у р и систем т и п у О К О Д , М К О Д , О К М Д т а М К М Д .
Н а в е д е н о с т р у к т у р и б а г а т о п р о ц е с о р н и х систем т и п у О К М Д та М К М Д з спільною та
з р о з п о д і л е н о ю п а м ' я т т ю . Р о з г л я н у т і б а г а т о п р о ц е с о р н і системи т и п у М К М Д з спільною
п а м ' я т т ю . П о я с н е н і о с н о в н і о с о б л и в о с т і к о м п ' ю т е р н и х систем з о д н о р і д н и м доступом
до п а м ' я т і та з н е о д н о р і д н и м д о с т у п о м до п а м ' я т і , а т а к о ж л и ш е з кеш пам'яттю.
Пояснено загальну організацію р о б о т и комп'ютерних систем з розподіленою пам'яттю.
Н а в е д е н о т и п и к о м у н і к а ц і й н и х м е р е ж б а г а т о п р о ц е с о р н и х систем. Розглянуті ста­
т и ч н і топології к о м у н і к а ц і й н и х м е р е ж б а г а т о п р о ц е с о р н и х систем. П о д а н о особливості
та о с н о в н і х а р а к т е р и с т и к и к о м у н і к а ц і й н и х м е р е ж з п о в н и м та з н е п о в н и м з ' є д н а н н я м .
П р о в е д е н о п о р і в н я н н я к о м у н і к а ц і й н и х м е р е ж з с т а т и ч н и м з ' є д н а н н я м - 1-вимірні,
2-вимірні, 3-вимірні.
Н а в е д е н о о с н о в н і т и п и ш и н н и х к о м у н і к а ц і й н и х м е р е ж б а г а т о п р о ц е с о р н и х систем
т а п р о в е д е н о п о р і в н я н н я ї х м і ж с о б о ю . П о к а з а н о , я к з д і й с н ю є т ь с я синхронізація ш и н
шинних комутаційних мереж.
П о д а н о с т р у к т у р и т а п р и н ц и п и р о б о т и к о м у т а ц і й н и х к о м у н і к а ц і й н и х мереж типу
к о о р д и н а т н о г о к о м у т а т о р а , о д н о я р у с н и х к о м у т а ц і й н и х м е р е ж , багатоярусних кому­
т а ц і й н и х м е р е ж : "Баньян", "Омега". Н а в е д е н о та о ц і н е н о с т р у к т у р и багатоярусних не­
блокуючих комутуючих мереж з реконфігурацією, а також неблокуючих комутаційних
мереж.
465

12.11. Література для подальшого читання


П и т а н н я в п р о в а д ж е н н я паралелізму в архітектурі к о м п ' ю т е р а та п о б у д о в и пара­
лельних к о м п ' ю т е р н и х систем р о з к р и т і в б а г а т ь о х п і д р у ч н и к а х та м о н о г р а ф і я х , з о к р е м а
[1-4, 11-16, 19-22, 24, 25, 27], і в і н ф о р м а ц і й н и х матеріалах ф і р м - в и р о б н и к і в , р о з м і щ е ­
них на їх веб-сторінках, з о к р е м а ф і р м I B M , Intel, Sun Microsystems, HP і т. д.
З а к о н Амдала та наслідки з нього, а т а к о ж аналіз о б м е ж е н ь на кількість п р о ц е с о р і в в
б а г а т о п р о ц е с о р н и х системах наведено в р о б о т і [19].
Багатопотокова обробка, в т о м у числі технологія гіперпотокової о б р о б к и , о п и с а н а в
р о б о т і [19], а т а к о ж в описах п р о ц е с о р а Intel Xeon.
П и т а н н я класифікації к о м п ' ю т е р н и х систем р о з г л я н у т і в р о б о т а х [1-4, 16, 19, 24] та
багатьох інших.
Велика кількість літератури п р и с в я ч е н а р о з г л я д у п р и н ц и п і в п о б у д о в и систем т и п у
О К М Д та М К М Д . В п е р ш у чергу слід з в е р н у т и с я до л і т е р а т у р и [2-4, 6, 13-15, 17, 18,
20-22, 25, 33-35, 38].
В п р а ц я х [5, 7, 20-22, 25, 33-35, 38] н а в е д е н о т и п и к о м у н і к а ц і й н и х м е р е ж б а г а т о п р о ­
цесорних систем. Тут же р о з г л я н у т і с т а т и ч н і топології к о м у н і к а ц і й н и х м е р е ж багато­
п р о ц е с о р н и х систем, о с о б л и в о с т і та о с н о в н і х а р а к т е р и с т и к и к о м у н і к а ц і й н и х м е р е ж з
п о в н и м та з н е п о в н и м з ' є д н а н н я м , а т а к о ж із с т а т и ч н и м з ' є д н а н н я м .
О с н о в н і т и п и ш и н н и х к о м у н і к а ц і й н и х м е р е ж б а г а т о п р о ц е с о р н и х систем т а ї х п о ­
р і в н я н н я наведено в [10, 20, 37].
Структури та принципи роботи комутаційних комунікаційних мереж типу коорди­
натного к о м у т а т о р а , о д н о я р у с н и х к о м у т а ц і й н и х м е р е ж , б а г а т о я р у с н и х к о м у т а ц і й н и х
мереж: "Баньян", "Омега" п о д а н о в р о б о т а х [8, 9, 20, 29, 30]. В ц и х же р о б о т а х м о ж н а
знайти структури багатоярусних неблокуючих комутуючих мереж з реконфігурацією,
а т а к о ж неблокуючих к о м у т а ц і й н и х м е р е ж . П и т а н н я м п о б у д о в и та к е р у в а н н я неблоку-
ю ч и м и к о м у т у ю ч и м и м е р е ж а м и з р е к о н ф і г у р а ц і є ю на основі с о р т у в а л ь н и х м е р е ж п р и ­
свячені р о б о т и [39-41].

12.12. Література до розділу 12


1. Воеводин В. В., Воєводин В. В. Параллельные вычисления. - СПб.: БХВ-Петербург, 2002
- 608 с.
2. Головки Б. А. Параллельные вычислительные системы. - M . : Наука, 1980. - 520 с.
3. Мультипроцессорные системы и параллельные вычисления/ Под ред. Ф. Г. Энслоу. - Мир,
1976. - 384 с.
4. Тербер К. Дж. Архитектура высокопроизводительных вычислительных систем / Пер. с англ.
- М.: Наука. Главная редакция физико-математической литературы, 1985. - 272 с.
5. Abraham, S. and Padmanabhan, К. Performance of the direct binary n-cube network for multipr­
ocessors. IEEE Transactions on Computers, 38 (7), 1000-1011 (1989).
6. Agrawal, P., Janakiram, V. and Pathak, G. Evaluating the performance of multicomputer confi­
gurations. IEEE Transaction on Computers, 19 (5), 23-27 (1986).
7. Al-Tawil, K., Abd-El-Barr, M. and Ashraf, F. A survey and comparison of wormhole routing tech­
niques in mesh networks. IEEE Network, March/April 1997, 38-45 (1997).
8. Bhuyan, L. N. (ed.) Interconnection networks for parallel and distributed processing. Computer
(Special issue), 20 (6), 9-75 (1987).
466

9. Bhuyan, L. N . , Yang, Q. and Agrawal, D. P. Performance of multiprocessor interconnection netw-


orks. Computer, 22 (2), 25-37 (1989).
10. Chen, W.-T. and Sheu, J.-P. Performance analysis of multiple bus interconnection networks with
hierarchical requesting model. IEEE Transactions on Computers, 40 (7), 834-842 (1991).
11. Dasgupta, S. Computer Architecture: A Modern Synthesis, vol. 2; Advanced Topics, John Wiley,
1989.
12. Decegama, A. The Technology of Parallel Processing: Parallel Processing Architectures and VLSI
Hardware, Vol. 1, Prentice-Hall, 1989.
13. Dongarra, J. Experimental Parallel Computing Architectures, North-Holland, 1987.
14. Duncan, R. A survey of parallel computer architectures. Computer, 23 (2), 5-16 (1990).
15. El-Rewini, H. and Lewis, T. G. Distributed and Parallel Computing, Manning & Prentice Hall,
1998.
16. Flynn. Computer Architecture: Pipelined and Parallel Processor Design, Jones and Bartlett,
1995.
17. Goodman, J. R. Using cache memory to reduce processor-memory traffic. Proceedings 10th An-
nual Symposium on Computer Architecture, June 1983, pp. 124-131.
18. Goyal, A. and Agerwala, T. Performance analysis of future shared storage systems. IBM Journal
of Research and Development, 28 (1), 95-107 (1984).
19. Hennessy, J. and Patterson, D. Computer Architecture: A Quantitative Approach, Morgan Kauf-
mann, 1990.
20. Hesham El-Rewini Mostafa Abd-El-Barr. A D V A N C E D C O M P U T E R ARCHITECTURE A N D
PARALLEL PROCESSING. John Wiley, 2005
21. Hwang, K. and Briggs, F. A. Computer Architecture and Parallel Processing, McGraw-Hill, 1984.
22. Ibbett, R. N. and Topham, N. P. Architecture of High Performance Computers II, Springer-Ver-
lag, 1989.
23. Juang, J.-Y. and Wah, B. A contention-based bus-control scheme for multiprocessor systems.
IEEE Transactions on Computers, 40 (9), 1046-1053 (1991).
24. Flynn M.F. Some computer organizations and their effectiveness. - IEEETC, 1972, September. P.
848-960.
25. Lewis, T. G. and El-Rewini, H. Introduction to Parallel Computing, Prentice-Hall, 1992.
26. Linder, D. and Harden, J. An adaptive and fault tolerant wormhole routing strategy for k-ary n-
cubes. IEEE Transactions on Computers, 40 (1), 2-12 (1991).
27. Moldovan, D. Parallel Processing, from Applications to Systems, Morgan Kaufmann Publishers,
1993.
28. N i , L. and McKinely, P. A survey of wormhole routing techniques in direct networks. IEEE Com-
puter, February 1993, 62-76 (1993).
29. Patel, J. Performance of processor-memory interconnections for multiprocessor computer syste-
ms. IEEE Transactions, 28 (9), 296-304 (1981).
30. Reed, D. and Fujimoto, R. Multicomputer Networks: Message-Based Parallel Processing, MIT
Press, 1987.
31. Serlin, O. The Serlin Report On Parallel Processing, No. 54, pp. 8-13, November 1991.
32. Sima, E., Fountain, T. and Kacsuk, P. Advanced Computer Architectures: A Design Space Appr-
oach, Addison-Wesley, 1996.
33. Stone, H. High-Performance Computer Architecture, 3rd ed., Addison-Wesley, 1993.
34. The Accelerated Strategic Computing Initiative Report, Lawrence Livermore National Labora-
tory, 1996.
35. Wilkinson, B. Computer Architecture: Design and Performance, 2nd ed., Prentice-Hall, 1996.
36. Yang, Q. and Zaky, S. Communication performance in multiple-bus systems. IEEE Transactions
on Computers, 37 (7), 848-853 (1988).
467

37. Youn, H. and Chen, С. A comprehensive performance evaluation of crossbar networks. IEEE
Transactions on Parallel and Distribute Systems, 4 (5), 481-489 (1993).
38. Zargham, M. Computer Architecture: Single and Parallel Systems, Prentice-Hall, 1996.
39. Мельник А. А., Илькив В. С. Реализация алгоритмов сортировки. Систолические вычис­
лительные структуры. Препринт N3-87. ИППММ АН УССР. - Львов, 1988. - с. 25-26.
40. Мельник А. А. О подходе к реализации многоступенчатых коммутирующих сетей. Высо­
копроизводительные вычислительные системы. Препринт N6-89. - Львов, 1989. - с. 46-47.
41. Мельник А. О. Принципи організації управління для одного класу багатоступінчастих
комутуючих мереж. Матеріали НТК "Досвід розробки та застосування приладо-технологічних
САПР мікроелектроніки". - Львів, 1995. - Ч. 1. - с. 28-29.

12.13. Питання до розділу 12


1. Наведіть хронологію нововведень в архітектурі комп'ютера з точки зору паралельної об­
робки інформації.
2. В якому комп'ютері вперше була використана паралельна пам'ять та паралельний АЛП?
3. В якому комп'ютері вперше використані процесори введення-виведення?
4. Які принципово нові архітектурні рішення були реалізовані в комп'ютері Stretch?
5. В якому комп'ютері вперше був використаний конвеєрний принцип виконання команд,
віртуальна пам'ять та система переривань?
6. В комп'ютерах якої серії вперше були використані незалежні конвеєрні операційні при­
строї?
7. Наведіть основні архітектурні принципи матричних процесорів та продемонструйте їх за­
стосування на прикладі процесора ILLIAC IV.
8. Дайте оцінку впливу векторно-конвеєрних комп'ютерів фірми CRAY на подальший розви­
ток комп'ютерів.
9. Виділіть особливості паралельних комп'ютерів з спільною пам'яттю.
10. Наведіть особливості та приклади систем з масовою паралельною обробкою інформації.
11. Наведіть закон Амдала та наслідки, що витікають з цього закону.
12. Яка основна ідея багатопотокової обробки інформації?
13. Які існують основні підходи до реалізації багатопотокової обробки інформації?
14. Опишіть технологію Hyper-Threading, використану в процесорі Хеоп фірми Intel.
15. Наведіть основні положення класифікації комп'ютерних систем, запропоновані Шо-
ром.
16. Наведіть структуру машини 1 за класифікацією Шора.
17. Наведіть структуру машини 2 за класифікацією Шора.
18. Наведіть структуру машини 3 за класифікацією Шора.
19. Наведіть структуру машини 4 за класифікацією Шора.
20. Наведіть структуру машини 5 за класифікацією Шора.
21. Наведіть структуру машини 6 за класифікацією Шора.
22. Наведіть принципи класифікації комп'ютерних систем, запропоновані Фліном.
23. Наведіть структуру комп'ютерної системи ОКОД.
24. Наведіть структуру комп'ютерної системи МКОД.
25. Наведіть структуру комп'ютерної системи ОКМД.
26. Наведіть структуру комп'ютерної системи МКМД.
27. Наведіть структуру багатопроцесорної системи типу ОКМД з розподіленою пам'яттю.
28. Наведіть структуру багатопроцесорної системи типу ОКМД з спільною пам'яттю.
29. Поясніть структуру та організацію роботи багатопроцесорної системи типу МКМД з
спільною пам'яттю.
468

30. Поясніть структуру та організацію роботи багатопроцесорної системи типу МКМД з роз­
поділеною пам'яттю.
31. Наведіть класифікацію багатопроцесорних систем типу МКМД з спільною пам'яттю.
32. Поясніть основні особливості комп'ютерних систем з однорідним доступом до пам'яті.
33. Поясніть основні особливості комп'ютерних систем з неоднорідним доступом до пам'яті.
34. Поясніть основні особливості комп'ютерних систем лише з кеш пам'яттю.
35. Поясніть загальну організацію роботи комп'ютерних систем з розподіленою пам'яттю.
36. Наведіть типи комутаційних мереж багатопроцесорних систем.
37. Які існують статичні топології комутаційних мереж багатопроцесорних систем.
38. Наведіть особливості та основні характеристики комутаційних мереж з повним з'єднан­
ням.
39. Наведіть особливості та основні характеристики комутаційних мереж з неповним з'єд­
нанням.
40. Порівняйте комунікаційні мережі з статичним з'єднанням - 1-вимірні, 2-вимірні, 3-ви-
мірні.
41. Наведіть основні типи шинних комутаційних мереж багатопроцесорних систем та по­
рівняйте їх між собою.
42. Як здійснюється синхронізація шин шинних комутаційних мереж?
43. Як працює комунікаційна мережа типу Crossbar?
44. Наведіть структури одноярусних комутаційних мереж.
45. Наведіть структури багатоярусних комутаційних мереж: "Баньян", "Омега".
46. Наведіть структури комутаційних мереж з реконфігурацією.
47. Наведіть структури неблокуючих комутаційних мереж.

You might also like