Процесор 80286
Всі виробники системних плат постачають свої вироби, враховуючи необхідність подальшої модернізації і установки більш швидкісних процесорів. Частіше за все на системній платі можна зустріти стандартні гніздові панелі (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 - ВТВ. Він являє собою кеш-пам'ять, в якій зберігається інформація про зроблені раніше переходи. Коли команда вибирається з пам'яті, її адреса транслюється через ВТВ і ВТВ видає пристрою передвиборку адресу наступної команди.