Реферат: Процесори фірми Intel
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 тактів.
З допомогою ВТВ можна успішно передбачати один
перехід, якщо він має закономірність виконання, що регулярно повторюється. Наприклад, буде коректно передбачений умовний перехід, який виконується при кожній парній ітерації і не виконується при кожній непарній ітерації. Переходи по покажчику, значення якого не є постійним для переважної більшості випадків, а також умовні переходи, що не мають закономірності виконання є непередбачуваними або погано передбачуваними. Якщо такі переходи зустрічаються всередині циклів, що часто повторюються, то це може істотно позначитися на продуктивності.
Якщо процесор зчитує дані з 32-розрядного регістру (наприклад, ЕАХ) відразу після того, як був зроблений запис у фрагмент цього регістра (наприклад, AL, АН, АХ), мікрооперація зчитання не зможе проникнути в (ROB) до того як мікрооперація запису не виконається і не буде видалена з (ROB). Це займає мінімум 7 тактів.
Затримка пов'язана з тим, що після повернення в (ROB) результату мікрооперації, яка записує в регістр, (ROB) буде міститися лише фрагмент регістра, а мікроперації, яка прочитує з регістра, потрібен цілий регістр.
Процесор не може збирати один регістр по частинах з різних місць. Мікрооперація на стадії (RAT) буде чекати, поки з (ROB) не будуть видалені мікрооперації.[2]
Мікропроцесор Pentium ІІІ побудований на архітектурі P6 і має ряд нововведень. Він виготовляється по 0.25-мікронній технології, має 32 Кв кеша L1 та 512 Кв кеша L2. Він розрахований на роботу на частоті 100 MHz, кеш другого рівня працює на половині тактової частоти. Серед сосбливостей його архітектури - динамічне виконання команд і технологія потокової пам’яті, яка дозволяє покращити систему вводу/виводу з комбінованим записом (WC) та використовувати інструкції попередньої виборки і потокового запам’ятовування. В Pentium ІІІ з’явилось вісім нових регістрів з прямим доступом, які здатні зберігати чотири числа ординарної точності (всього 128 розрядів).[8]
Потокові розширення SIMD (Single Instruction Multiply Data, відомі раніше як KNI- Katmai New Instructions) добавили 50 інструкцій для операції (ординарної точності) над числами з плаваючою точкою, що дозволяє отримувати до чотирьох результатів за один цикл процесора. З’явились також 12 нових мультимедійних інструкцій (в додаток до тих, що залишились у спадщину від технології MMX) і 8 інструкцій кешування.[9]
3. Процесори фірми Intel в порівнянні з моделями інших фірм
Компанія Advanced Micro Devices (AMD) є , мабуть, основним конкурентом Intel в секторі процесорів IA архітектури. Потрібно зазначити, що процесори AMD, no крайній мірі починаючи з моделі К5, завжди відрізнялися більш розвиненою мікроархітектурою. Наприклад, вони містять найбільшу кількість транзисторів, в порівнянні з процесорами того ж класу фірми Intel.
Мікроархітектура сімейства К6, про яке піде мова, характеризується всіма особливостями, властивими шостому поколінню мікропроцесорів Це, передусім, - конвергенція технологій RISC і CISC, яка забезпечує суперконвейєрність, виконання інструкцій з порушенням черговості їх проходження (out of-order), спекулятивне виконання, розвинений механізм прогнозу розгалужень і перейменування регістрів. Всі моделі мають так звану гарвардську архітектуру - роздільну для інструкцій і даних кеш-пам'ять першого рівня (в цьому випадку по 32 KB).
На початку січня 1998 року компанія AMD випустила нову модель процесора К6, працюючу на частоті 266 MHz, - перший процесор AMD, виготовлений по 0,25-мікронній технології.
7 квітня AMD анонсувала процесор К6 300 MHz, одночасно оголосивши про зниження цін на всю лінійку шостого покоління. 28 травня на виставці Electronics Entertainment Expo в Атланті (штат Джорджія) компанія AMD повідомила про початок поставок нового чіпа AMD-K6-2. Це - перший процесор з суперскалярною обробкою ММХ-інструкцій і технологією 3DNow, що включає набір з 21 нової інструкції, які використовуються для прискорення побудови тривимірних об'єктів, а також для підтримки стереозвука і відео. Технологію ж 3DNow багато хто оцінюють як першу в історії суперництва перемогу AMD над Intel. Були випущені три модифікації процесора - з частотами 266, 300 і 333 MHz
У серпні AMD представила К6-2 з технологією 3DNow, що оперує на частоті 350 MHz, а 16 листопада компанія оголосила про випуск трьох версій процесора AMD-K6-2, працюючих на частотах 366, 380 і 400 MHz
Процесори містять 9,3 млн транзисторів і виконані по 0.25 мікронній технології з п’ятишаровою металізацією. AMD K6-2 став першим процесором для Socket 7/Super 7, підтримуючим частоту шини 100 MHz, що надало процесору деякі переваги над тогочасними процесорами фірми Intel.
Слід визнати талановитість команди розробників фірми Cyrix. На сьогоднішній день це - єдиний процесор, що досягає досить високого рейтингу при реально менших тактових частотах. Крім того, пригадаємо, що це був перший процесор, що подолав бар'єр 66 MHz для системної шини.
У кінці березня 1998 Cyrix/IBM випускає процесор IBM 6x86MX PR266, підтримуючий частоту системної шини 83 MHz Процесор працює на тактовій частоті 208 MHz (83 х 2,5), виготовлений по 0,35-мікронній технології, має 64 KB кэш пам'яті L1 (по 32 KB для інструкції і даних, відповідно) і підтримує набір інструкцій ММХ.