REFERATUA.ORG.UA — База українських рефератів




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

Спираючись на цю інформацію процесор намагається передбачити станеться або не станеться перехід. Зустрівши команду умовного переходу (по коду операції поля команди) процесор робить припущення про шлях розгалуження, яке може бути істинним (true) або помилковим (false). Процесор починає виконання команди не спочатку, а з передбаченої адреси мікрокоманди переходу у відповідності зі своїм припущенням Може забезпечуватися декілька рівнів прогнозування До остаточної ствердної відповіді на питання про перехід процесор не здійснює ніяких модифікацій своїх регістрів і ОЗП. У разі неправильного припущення всі установки команди відміняються, а буфер очищається, що помітно знижує продуктивність процесора.

Всі процесори виконані по дуже енергоекономічній технології BiCMOS (Bipolar CMOS), однак виділення тепла цим приладом дуже велике. Як правило, процесори Pentium розраховуються для роботи при робочій температурі до 85°З, при цьому нагрів корпусу без ефективного тепловідводу досягає температури понад 180°С.

При розробці і впровадженні продуктів, призначеній для роботи в середовищі з процесором Pentium подальший розвиток отримала система OverDrive. Pentium OverDrive містить додаткові блоки множення частоти, фільтр напруження, блок пониження напруження живлення з 5, 0В до 3, 3В, посилена система тепловідводу радіатором і вентилятором.

Всі виробники системних плат постачають свої вироби, враховуючи необхідність подальшої модернізації і установки більш швидкісних процесорів. Частіше за все на системній платі можна зустріти стандартні гніздові панелі (LIF, low-insertion-force) або настановні панелі з нульовим зусиллям (ZIF, zero-insertion-force). [10]

2.Архітектура сучасних мікропроцесорів фірми Intel

Сучасні мікропроцесори фірми Intel основані на архітектурі P6 і мають ряд особливостей та відмінностей від попереднього покоління.

Конвейєр процесорів сімейства Р6 істотно відрізняється від конвейєра процесорів сімейства Р5. У Р6 реалізований принципово новий підхід до виконання команд. Додано ряд нових прийомів для запобігання заторам конвейєра, наприклад позачергове виконання команд (out-of-order-execution), перейменування регістрів. Конвейєр Р6 складається з трьох частин:

1. In-Order Issue Front End. На цьому етапі відбувається вибірка команд з пам'яті і декодування в мікрооперації.

2. Out-of-Order Core. На цьому етапі процесор виконує мікрооперації. Виконання може відбуватися без черги.

3. In-Order Retirement unit. На цьому етапі відбувається вилучення команд з конвейєра.

Тепер розглянемо процес виконання команд більш детально. Р6 містить 3 паралельно працюючих декодера. Перший декодер здатний декодувати макрокоманди, що складаються з чотирьох і більше мікрооперацій. Складні макрокоманди (більш чотирьох мікрооперацій) вимагають більше ніж один такт для декодування. Другий і третій декодери можуть декодувати макрокоманди, що складаються тільки з однієї мікрооперації. Таким чином, при складанні коду потрібно дотримуватися послідовності 4-1-1 (перша макрокоманда складається з чотирьох мікрооперацій, а інші дві - з однієї мікрооперації). Таке упорядкування макрокоманд дозволить досягнути максимальної продуктивності декодерів .

У кожному такті декодери можуть проводити до шести мікрооперацій, які поступають в спеціальну чергу. З черги до трьох мікрооперацій поступає на стадію (RAT) Register Allocation Table. Тут відбувається переіменування регістрів і резервування місць (регістрів) в (ROB)- Re-order buffer. Перейменування регістрів дозволяє нейтралізувати помилкову взаємозалежність.

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

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

Прогнозу розгалуження варто виділити особливу увагу, оскільки невірний прогноз в процесорах Р6 обходиться дуже дорого, набагато дорожче, ніж в Р5. Затримка при помилковому прогнозі складає мінімум 12 тактів, але може бути і більше.

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

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

ВТВ працює за наступним принципом:

-якщо адреса команди відсутня в ВТВ, то передвиборка продовжується далі з наступної адреси;

-якщо адреса команди знаходиться в ВТВ і перехід передбачається як зроблений, то це вимагає одного зайвого такту;

ВТВ зберігає 4-бітну історію переходів.

Переходи, які відсутні в ВТВ, передбачаються з використанням статичного алгоритму прогнозу розгалуження:

-безумовні переходи передбачаються як зроблені;

-умовні переходи назад передбачаються як зроблені;

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

Затримка на статичний прогноз становить 6 тактів.

З допомогою ВТВ можна успішно передбачати один

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


 
Загрузка...