Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Принципи організації паралелізму виконання машинних команд в процесорах

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





цесорів.

У процесорах AMD K8 і IBM PPC970 використовуються більш прості механізми передбачення звичайних переходів, і відсутні механізми передбачення циклів і чергуються непрямих переходів.

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

Методи передбачення переходів діляться на статичні і динамічні. При використанні статичних методів до виконання програми для кожної команди умовного переходу вказується напрямок найбільш ймовірного розгалуження. Ця вказівка ​​робиться або програмістом за допомогою спеціальних засобів, наявних в деяких мовах програмування, з досвіду виконання аналогічних програм або результатами тестового виконання програми, або програмою-компілятором по закладених в ній алгоритмам. Статичні методи передбачення розгалужень занадто спрощені; вони наказують завжди виконувати чи не виконувати певні типи переходів. У деяких процесорах (що не належать до сімейства x86) команди містять В«НатякВ» на напрям передбачуваного переходу, який компілятор може зробити на основі очікуваного їм поводження програми.

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

Можливо також використання «³дкладених переходівВ», коли одна або кілька команд після команди розгалуження виконуються безумовно.

У момент визначення дійсного значення умови розгалуження вноситься зміна в історію розгалуження. Якщо передбачення було невірним, то повинна ініціюватися вибірка правильних команд. Результати команд, які були умовно виконані, повинні бути анульовані.

Механізм передбачення переходів працює одночасно з декодером інструкцій і незалежно від нього. Завдяки ефективній реалізації передбачення адреси переходу в процесорах P-III, PM, P-M2, P8 і K8 при правильному прогнозі втрачається всього 1 такт. Це означає, що мінімальний час, що витрачається на ітерацію циклу (або на один перехід в ланцюжку переходів) становить 2 такту. По суті, провісник переходів в такому циклі (або ланцюжку) працює у своєму незалежному циклі, що складається з двох стадій - передбачення і зчитування нового блоку кеша - а декодер та інші підсистеми процесора обробляють інструкції з знову зчитувальних блоків. Оскільки провісник переходів В«переглядаєВ» цілий блок, який може містити велику кількість інструкцій, то він може В«ВипереджатиВ» декодер у своєму перегляді. Завдяки цьому перехід може бути здійснений раніше, ніж вичерпаються інструкції в поточному блоці, та зазначеної втрати такту не відбудеться - цей такт буде приховано на тлі безперебійної роботи декодера.

У процесорі PPC970 провісник переходів працює менш ефективно - при правильному прогнозі втрачається 2 такту, а мінімальний час ітерації циклу складає 3 такти. Хоча провісник переглядає інструкції з деяким випередженням, це може лише ч...


Назад | сторінка 16 з 23 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Система команд. Структура слова команд. Синтаксис команд. Групи команд
  • Реферат на тему: Методи передбачення та прогнозування в політиці
  • Реферат на тему: Передбачення і прогнозування
  • Реферат на тему: Закони. Пояснення. Передбачення
  • Реферат на тему: Передбачення: загальна характеристика