М48 |
Мельник, А. О. Архітектура комп'ютера [Текст] : підручник / А. О. Мельник. – Луцьк : Волинська обласна друкарня, 2008. – 468 с.
Підручних охоплює весь комплекс питань, пов'язаних з теорією, принципами та методами побудови та організації функціонування комп'ютерів. Розкриті питання представлення команд та даних в комп'ютері, алгоритми виконання операцій обробки даних та принципи побудови арифметико-логічного пристрою. Описана структура й організація роботи комп'ютера з простою та складною системою команд, суперконвеєрного, суперскалярного, векторного та з довгим форматом команди. Розглянуті конфлікти в конвеєрі команд і методи їх усунення, структура та організація роботи пристрою керування. Наведена структура пам'яті комп'ютера, організація взаємодії між її рівнями, сегментна організація пам'яті й питання її захисту. Дане пояснення способів розпізнавання пристроїв введеня-виведення та організація їх роботи. Розглянуті питання подальшого підвищення продуктивності комп'ютера та шляхи створення паралельних комп'ютерних систем.
Підручник призначений для студентів вищих навчальних закладів України. Він також може бути корисним для викладачів, фахівців в області комп'ютерних та інформаційних технологій.
ЗМІСТ
Передмова 13
РОЗДІЛ 1.
Сучасний комп'ютер. Основні поняття 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. Архітектурні принципи Джона фон Неймана 30
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. Переведення чисел із системи числення з основою k у десяткову систему. 59
2.4. Переведення чисел із десяткової системи у систему числення з основою k 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. Базова адресація 111
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. Формати команд комп'ютерної системи IBM 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.
Запобігання конфліктам в конвеєрі команд 167
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
6J .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
Розділ 1 1.
Організація введення-виведення 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
11.7.5. Мультиплексний та селекторний канали введення-виведення 417
11.8. Короткий зміст розді
|