У кристал процесора вбудована кэш-пам'ять L1, побудована по розділеній гарвардской архітектурі. По 8 Кбайт відведено окремо для секції команд і даних. Така організація розділеної кэш-пам'яті дозволяє уникнути конфліктів, пов'язаних з доступом до команд і даних на різних стадіях конвейєрної обробки. Внутрішня спеціалізована шина кэш-пам'яті працює на 2/3 внутрішній швидкості процесора. Організація цієї пам'яті 2-х портова, множинно-асоціативна, із зворотним записом. Процесор містить логіку синхронізації кэш-пам'яті для роботи в багатопроцессорной конфігурації.
У процесор вмонтований контроллер переривань (APIC, advanced peripheral interrupt controller), що програмується, що дозволяє створювати багатопроцесорні системи з кількістю процесорів до 256.
Процесори четвертого покоління мають в своєму розпорядженні єдиний конвейєр і називаються скалярними Одночасно на рівень декодування цього процесора може поступити тільки одна команда.
У деяких процесорах п'ять рівнів конвейєра діляться на багатоступінчаті операції, що дозволяє знизити складність кожного рівня. При цьому, на кожному рівні конвейєра скорочується число логічних операцій, завдяки чому легше перейти з рівня на рівень і підвищувати внутрішньопроцесорну тактову частоту. Така організація обчислень називається суперконвейєрною, вона характерна для мікропроцесорів клона Р5, а саме, AMD K5, NexGen NX586.
У базовій моделі Pentium задіяна інша методика обробки команд Він містить два конвейєри, званих u-pipe і v-pipe В першому з них (первинному) виконуються цілочисельні операції і команди з плаваючою точкою, а у повторному прості цілочисельні операції і певний тип команд з плаваючою точкою. Процеси в цих двох конвейєрах протікають незалежно один від одного одночасно з двома інструкціями. Такі процесори, що містять декілька незалежно працюючих конвейєрів, називаються суперскалярними (superscalar).
Процесор Pentium є двопотоковим по числу конвейєрів, але існують і чотирипотокові, наприклад, AMD K5. На одночасне виконання двох команд накладені деякі обмеження, пов'язані з комбінаціями команд і взаємозалежністю результатів. Всі команди, що поступають в конвейєри на обробку, повинні покидати їх точно в такому ж порядку, в якому вони на них і поступили Такий метод обробки називається впорядкованим надходженням (in-order issue), обробкою і впорядкованим завершенням (in-order completion) Якщо команда не може бути завершена в одному конвейєрі, то зупиняється і інший, що дещо знижує ефективність роботи процесора з точки зору продуктивності.
Існує і інший підхід неврегульоване завершення (out-of-order completion), характерний для процесорів AMD K5, Cyrix Ml, NexGen Nx586, що дозволяє одному з конвейєрів завершувати операцію навіть при «заторі» в іншому. У цьому випадку процесор може змінювати черговість надходження на виконання команд, обробляючи їх не в тому порядку в якому вони слідують в програмі, т. е. обробляючи готові до виконання і відкладаючи на більш пізній термін ті з команд, які не можуть бути виконані негайно, що називається неврегульованою обробкою (out-of order issue). Для реалізації подібного процесу в процесорі організуються додаткові апаратні вузли: буфери, вікна команд, накопичувачі команд.
Для підвищення продуктивності процесора широко застосовуються методи обходу (data bypassing) і просування даних (data forwarding). При обходах результати виконання однієї команди відразу пересилаються наступною, так що виключаються затримки на модифікацію і повторне читання з регістра процесора або ОЗП. Просування даних дозволяє процесору виконувати деякі команди паралельно, негайно передаючи результати однієї з них в іншу, якою вони не будуть потрібні до більш пізнього рівня конвейєрної обробки.
Як відмічалося, всередині мікропрограм CISC-команд, що виконуються існує безліч переходів і розгалужень. Перехід - це зміна послідовності виконання команди, яка може бути пов'язана з додатковою інформацією (ознакою стану або умовою). Такий перехід називається умовним. Існують і безумовні переходи, явно обумовлені логікою мікропрограм. Як ті, так і інші переходи займають при виконанні команд певний час.
У процесорі Pentium застосовується спеціальний буфер прогнозування розгалужень (ВТВ, branch target buffer) на 256 позицій, що відстежує і що зберігає дані про результати 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) нових команд. Якщо такі ситуації будуть зустрічатися досить часто, то продуктивність процесора різко знизиться.