ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 24.12.2021
Просмотров: 6798
Скачиваний: 22
100
Команда 4 |
|
|
|
ВК |
ДК |
ВА |
ВО |
KB |
ЗР |
|
|
|
|
|
Команда 5 |
|
|
|
|
ВК |
ДК |
ВА |
ВО |
KB |
ЗР |
|
|
|
|
Команда 6 |
|
|
|
|
|
ВК |
ДК |
ВА |
ВО |
KB |
ЗР |
|
|
|
Команда 7 |
|
|
|
|
|
|
ВК |
ДК |
ВА |
ВО |
KB |
ЗР |
|
|
Команда 8 |
|
|
|
|
|
|
|
ВК |
ДК |
ВА |
ВО |
KB |
ЗР |
|
Команда 9 |
|
|
|
|
|
|
|
|
ВК |
ДК |
ВА |
ВО |
KB |
ЗР |
Часова діаграма в табл. 3.5 показує, що кожна команда виконується шляхом проходження через 6 ярусів конвеєра. Разом з тим, не для кожної команди це потрібно Наприклад, команда вибірки не вимагає виконання операції ЗО. Однак при її виконанні можна зробити шостий ярус конвеєра прозорим
Також на діаграмі показано, що всі стадії виконуються паралельно. В першу чергу тут прийнято, що не виникає конфліктів при зверненні до пам'яті. Наприклад, операції ВК, ВО та ЗО передбачають звернення до пам'яті. Діаграма допускає, що всі ці звернення можуть здійснюватись одночасно. Більшість систем пам'яті цього не допускають, тому звернення розносяться в часі. Іноді потрібне число може знаходитись в кеш пам'яті, а стадії ВО та ЗО відсутні. Тому конфлікти при зверненні до пам'яті не завжди сповільнюють конвеєр
Декілька інших факторів обмежують ріст продуктивності за рахунок використання конвеєра
-
неоднаковість часу шести стадій виконання команди приводить до простою деяких з них, як це мало місце в двоярусному конвеєрі;
-
поява команди умовного переходу може звести нанівець декілька вибірок команд
-
подібною до команди умовного переходу є команда переривання
Табл. 3.6 відображає вплив умовного переходу при виконанні тих же операцій, що й в табл. 3.5.
|
|
|
|
|
|
|
|
|
|
|
|
|
Таблиця 3.6 |
|
Номер такту |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
Команда 1 |
ВК |
ДК |
ВА |
ВО |
KB |
ЗР |
|
|
|
|
|
|
|
|
Команда 2 |
|
ВК |
ДК |
ВА |
ВО |
KB |
ЗР |
|
|
|
|
|
|
|
Команда 3 |
|
|
ВК |
ДК |
ВА |
ВО |
KB |
ЗР |
|
|
|
|
|
|
Команда 4 |
|
|
|
ВК |
ДК |
ВА |
ВО |
|
|
|
|
|
|
|
Команда 5 |
|
|
|
|
ВК |
ДК |
ВА |
|
|
|
|
|
|
|
Команда 6 |
|
|
|
|
|
ВК |
ДК |
|
|
|
|
|
|
|
Команда 7 |
|
|
|
|
|
|
ВК |
|
|
|
|
|
|
|
Команда15 |
|
|
|
|
|
|
|
ВК |
ДК |
ВА |
ВО |
KB |
ЗР |
|
Команда 16 |
|
|
|
|
|
|
|
|
ВК |
ДК |
ВА |
ВО |
KB |
ЗР |
Тут прийнято, що команда 3 є умовним переходом до команди 15. Поки команда З виконується, неможливо взнати, яка команда буде наступною. Конвеєр буде вибирати наступні команди (4,5,6,7) і виконувати їх. Наявність умовного переходу визначиться в кінці сьомого такту. Після цього конвеєр повинен звільнитись від непотрібних команд (очиститись). На 8 такті команда 15 поступить в конвеєр і дальше він почне заповнюватись знову. При цьому від 9 до 12 тактів не буде завершено виконання жодної команди. Це є розплата ефективністю за причини неможливості передбачити перехід.
101
На рис. 3.14 показано блок-схему виконання команди в шестиярусному конвеєрі з врахуванням переходів та переривань.
В шестиярусному конвеєрі команд появляється й інша проблема, якої не було в двоярусному конвеєрі. Стадія ВА може залежати від вмісту регістра, який змінюється попередньою командою, що знаходиться в конвеєрі. З'являється новий конфлікт, для усунення якого необхідна відповідна логіка.
Таким чином, конфлікти конвеєра можуть бути трьох типів:
" Конфлікт ресурсів, наприклад, одночасна потреба доступу до пам'яті. Цей конфлікт вирішується шляхом розділення доступу до ресурсу в часі, або шляхом введення додаткового ресурсу, наприклад, кількох блоків пам'яті.
-
Залежність між даними, коли результат виконання деякої команди, яка іще не завершена, є операндом для наступної команди. Для подолання даного конфлікту існує декілька шляхів. Це може бути введення „пустої" операції nop (яка не виконує дій, але дозволяє ліквідувати конфлікт), введення зв'язків між ярусами конвеєра, що прискорює доступ до потрібного операнда, а також застосування компілятора, здатного передбачати такого типу конфлікти та перевпорядковувати команди програми.
-
Наявність умовних переходів. В сучасних комп'ютерах для зменшення впливу на ефективність конвеєра цього конфлікту використовується спеціальна логіка передбачення переходу, яка дозволяє знайти вітку, якою програма піде після переходу. Інший підхід - виконання обох віток переходу до того часу, поки напрям переходу стане відомим.
102
В наступних розділах питання підвищення ефективності використання конвеєрної обробки буде розглянуто детальніше.
3.3. Формати команд комп'ютера
3.3.1. Класифікація архітектури комп'ютера за типом адресованої пам'яті
Як видно з рис. 3.1, крім коду операції до складу команди входить адресна частина. Цією частиною визначається місце знаходження даних, над якими виконується операція, задана кодом операції. Даних може бути декілька, і, крім того, вони можуть знаходитись в основній пам'яті, в регістрах процесора чи в запам'ятовуючих елементах інших вузлів комп'ютера. Тому і формати команд в цих випадках будуть різними. Можна здійснити класифікацію архітектури комп'ютера за типом адресованої пам'яті. Залежно від того, який тип пам'яті адресується, розрізняють наступні типи архітектур комп'ютера: стекова, акумуляторна, на основі регістрів загального призначення.
В стековій архітектурі (рис. 3.15) операнд завжди знаходиться в вершині стека - спеціальному регістрі пам'яті, з якого загружається в регістр процесора, або через нього результат операції загружається в пам'ять. Стек представляє собою пам'ять з детермінованою вибіркою, яка працює за принципом „останній прийшов - перший вийшов" (LIFO - Last In First Out). Стек виконує дві операції: push - вштовхування даних в стек, pop - виштовхування даних з стеку.
Інформація може бути занесеною в вершину стека з пам'яті або з регістра АЛП процесора. Перевага стекової архітектури - відсутність в команді адресної частини. З іншого боку, стекова архітектура не передбачає довільного доступу до комірок пам'яті, тому часто важко створити для неї ефективну програму. Крім того, стек не дозволяє підвищити продуктивність комп'ютера за рахунок розпаралелення, оскільки наявна лише одна вершина стека.
103
Стекова архітектура була реалізована в наступних комп'ютерах: В5500, В6500 фірми Burroughs, HP2116P, НРЗ 000/70 фірми Hewlett-Packard, JEM l, JEM 2 фірми ajile Systems.
В акумуляторній архітектурі (рис. 3.16) операнд завжди знаходиться в акумуляторі - спеціальному регістрі процесора. В цей же регістр записується і результат операції. Оскільки адреса одного із операндів визначена, в команді достатньо вказати лише адресу другого операнда. Перевага даної архітектури - короткі команди. Вона була реалізована в комп'ютерах IBM 7090, DEC PDP-8 та інших.
Архітектура на основі регістрів загального призначення може мати такі різновидності як: архітектура типу пам'ять-пам'ять, регістр-пам'ять та регістр-регістр.
В архітектурі типу пам'ять-пам'ять (рис. 3.17) операнди поступають на вхідні регістри АЛП процесора прямо з пам'яті. Результат операції також записується прямо в пам'ять. Оскільки час звернення до пам'яті є більшим часу звернення до регістрів, ця архітектура характеризується низькою швидкодією. Прикладом таких комп'ютерів є сім'ї IBM System/370 та DEC VAX.