- •1.Суть динамічного виконання:
- •2.Який кеш мають процесори Pentium II та Pentium Pro.
- •3.Скільки стадій має цілочисельний конвеєр процесора Pentium Pro, на які блоки він поділяється? Яке призначення блоків?
- •4.Особливості передбачення розгалужень в процесорі Pentium Pro. Суть динамічного та статистичного передбачення?
- •5. Декодування команд. В чому різниця між декодерами d0, d1, d2?
- •6. Суть перейменування регістрів?
- •7. Особливості позачергового виконання.
- •8.Механізм завершення та впорядкування інструкцій.
- •9.Види та особливості промахів в кеші.
- •10.Суть оптимізації розгалужень, доступу до пам‘яті і кешу та декодування.
- •11.Особливості оптимізації для процесораPentiumPro.
Міністерство освіти та науки України
Хмельницький національний університет
Кафедра системного програмування
Лабораторна робота №2
Тема: ” Архітектура Pentium Pro, Pentium II ”
Виконав: студент гр. KI-08-3
Ткач М.Ю.
Перевірила: Тітова В.Ю.
Хмельницький 2011
Мета: ознайомитись з особливостями архітектури Pentium Pro, Pentium 2
1.Суть динамічного виконання:
Процесори Pentium II і Pentium Pro використовують динамічне виконання команд, що дозволяє позбутися витрат, властивих традиційному послідовному виконанню коду. Процесори реалізовують динамічне виконання команд за допомогою наступних механізмів:
- Високооптимізоване прогнозування розгалужень.
- Перейменування регістрів з метою дозволити залежності за даними і регістрами.
- Попереджувальне виконання команд.
- Позачергове виконання команд.
Прогнозування розгалужень
Механізм прогнозування розгалужень дозволяє процесору передбачити, з якої гілки команди будуть виконуватися найвірогідніше.
Процесор передбачає розгалуження за допомогою динамічного алгоритму прогнозування, заснованого на історії розгалужень. У разі відсутності історії розгалужень використовується статичний алгоритм прогнозування.
Перейменування регістрів
Суть перейменування регістрів полягає в тому, що процесор відображає регістризагального призначення і регістри з плаваючою точкою в більш широкий набір внутрішніх регістрів, що дозволяє усунути помилкову залежність по регістрах.
Перейменування регістрів невидиме для програмного забезпечення.
Попереджувальне виконання
Процесори Pentium II і Pentium Pro використовують механізм попереджувального виконання: вони починають виконувати команди з тієї або іншої гілки програми зазделегідь, засновуючись на прогнозі розгалужень, - на декілька тактів раніше, ніж фактично виконується команда розгалуження.
Результати записуютьсяу тимчасове сховище, де вони знаходяться до підтвердження правильності прогнозування.
Позачергове виконання
У ході позачергового виконання процесор виконує кожну команду як можна раніше, незалежно від її розташування в початковій програмі.
Порядок проходження команд в початковій програмі дотримується в процесі завершення, коли результати позачергового виконання з тимчасових стають остаточними. Таким шляхом зберігається семантика програми
Динамічне виконання дозволяє процесорам Pentium II і Pentium Pro виконувати команди набагато швидше, ніж більш раннім процесорам. Щоб повністю використати переваги динамічного виконання, необхідно швидше і ефективніше забезпечуватипристрої виконання командами і даними.
Для реалізації динамічного виконання необхідне наступне:
- Більш точний прогноз розгалужень, оскільки значно зростають втрати при невірному прогнозі.
- Швидке послідовне декодування, щоб не затримувати позачергове виконання.
- Висока швидкість доступу до пам'яті і ефективна робота кеш-пам'яті.
2.Який кеш мають процесори Pentium II та Pentium Pro.
Процесори Pentium II і Pentium Pro забезпечені роздільними кешами команд і даних першого рівня. Кеш даних має два порти, через які можуть одночасно здійснюватися зчитування і запис.
Процесори забезпечені об'єднанимикешами другого рівня, де можуть зберігається і дані, і команди.
Довжина рядків кеша в кешах обох рівнів рівна 32 байтам. 32-байтний рядок прочитується або записується в пам'ять цілком, коли будь-яка його частинапрочитується або записується в пам'ять.
При виникненні промаху в кеші першого рівня процесор спочатку намагається знайти інформацію в кеші другого рівня, потім - в основній пам'яті.
Ви можете враховувати те, що довжина рядка кешу рівна 32 байтам, для підвищення частоти попадань в кеш.