Огляд архітектури процесорів Pentium, Pentium PRO, Pentium II фірми Intel.
Процесор Pentium - P54.
Випущений в 1993 р. Розрядність шини адреси - 32 біта, таким чином, максимальний
розмір адресується пам'яті рівний 4 Гб. Розрядність шини даних - 64 біта.
Процесори P54 включають в себе:
Суперскалярна архітектура - дві паралельно працюють конвеєра обробки
дозволяють одночасно обробляти до двох інструкцій за такт. Конвеєри носять
назви U і V. U-конвеєр (U-pipeline) - це АЛП з повним набором інструкцій,
він може виконувати всі цілочисельні інструкції та інструкції з плаваючою точкою.
V-конвеєр (V-pipeline) - АЛП з обмеженим набором інструкцій, може виконувати
тільки прості (що виконуються за один такт - MOV, INC, DEC тощо) інструкції -
риси RISC-архітектури.
На кристалі інтегрований асоціативний кеш першого рівня - L1 розміром 16К,
який включає в себе роздільні кеші команд і даних (по 8К для команд і для
даних). Кеш може бути налаштований як WT (write-trough) - з наскрізною
записом або зі зворотним записом-WB (write-back). Коротенько алгоритм роботи WT і
WB виглядають так: при наскрізний запису (write-through) кожна операція запису
одночасно виконується і до рядка кеша, і в ОЗУ. При цьому, ЦП при кожній
операції запису змушений чекати закінчення щодо довгої запису в ОЗУ.
Алгоритм WB (зворотній запис) дозволяє зменшити кількість операцій запису на
шини основної пам'яті. Якщо блок пам'яті, до якого повинна проводитися запис
відображено і в кеші, то фізична запис спочатку буде відтворена в цю
дійсну рядок кеша, і вона буде відзначена як брудна (dirty) або
модифікована, тобто що вимагає вивантаження в ОЗУ. Тільки після цієї вивантаження
рядок стане чистою (clean) і її можна буде іспользвать для кешування інших
блоків без втрати цілісності даних. В ОЗП дані переписуються тільки цілої
рядком.
Кожен з кешей включає в себе рядки довжиною 32 байтів і містить буфер TLB -
буфер перетворення лінійних адрес у фізичні. Кеш підтримує протокол
MESI, названий за визначеним ним станам: Modified, Exclusive, Shared і
Invalid.
M-state - рядок присутній тільки в одному кеші і вона модифікована. Доступ до
цьому рядку можливий без регенерації зовнішнього циклу (по відношенню до локальної
шині).
E-state - рядок присутній тільки в одному кеші, але вона не модифікована.
Доступ до цього рядка можливий без регенерації зовнішнього циклу. Під час запису в неї
вона перейде в стан "M".
S-state - рядок може бути присутнім в декількох кешах. Її читання можливе без
регенерації зовнішнього циклу, а запис у неї повинна супроводжуватися наскрізної
записом в ОЗУ, що спричинить за собою анулювання відповідних рядків в
інших кешах.
I-state - рядок відсутній в кеші, її читання може призвести до генерації циклу
заповнення рядка. Запис у неї буде наскрізний і вийде на зовнішню шину.
Процесор має вбудований вдосконалений блок обчислення з плаваючою
точкою. Швидкі алгоритми повністю переробленого з часів 487-співпроцесорів
FPU забезпечують більш ніж десятикратне збільшення швидкості при роботі з
основними операціями, що включають ADD, MUL, LOAD і т.п. в порівнянні з 487.
Конвеєрна організація дозволяє обробляти два цілочисельні операції та одну
(а за певних умов і два) операцію з плаваючою крапкою за такт.
Застосована технологія динамічного передбачення розгалужень, для цього введені дві
буфера предвибірки.
Введена можливість оперування сторінками розміром 4 Мб в режимі сторінкової
переадресації.
Введено розширення архітектури (щодо базової архітектури 32-х розрядних
МП) - додано нові регістри і команди. Сюди входить, наприклад, інструкція
CPUID, що дозволяє в будь-який момент часу отримати відомості про клас, моделі та
архітектурні особливості даного ЦП. До розширення також відносяться і регістри,
специфічні для моделі, їх можна розділити на 3 групи:
тестові регістри TR1 ... TR12. Вони дозволяють керувати більшістю
функціональних вузлів ЦП, забезпечуючи можливість тестування їх
працездатності: за допомогою бітів регістра TR12 можна заборонити нові
архітектурні властивості (предскізініе і трасування розгалужень, паралельне
виконання інструкцій), а також роботу кеша L1.
засоби моніторингу проізволітельності. Сюди входять таймер реального часу
(TSC) - 64 бітний лічильник, що працює на інкремент з кожним тактом ядра ЦП,
для його читання призначена команда RDTSC; лічильники подій CTR0 і CTR1 - обидва
розрядністю 40 біт, програмуються на підрахунок подій різних класів,
пов'язаних з шинними операціями, виконанням інструкцій, роботою конвеєрів,
кешу і т.п.
регістри-фіксатори адреси і даних циклу, що з'єднав спрацьовування контролю
машинної помилки.
Застосовано виявлення помилок внутрішніх пристроїв (внутрішній контроль паритету) і
зовнішнього інтерфейсу шини, контроль паритету шини адреси.
До складу чіпа введений APIC (Advanced Programmable Interrupt Controller) -
розширений програмований контролер переривань.
Реалізована можливість побудови багатопроцесорних (максимальне колічестно ЦП
- 2 штуки) систем двох типів: SMP - синхронна багатопроцесорна обробка, і
FRC - функціонально надлишкова система.
Режим SMP (підтримують процесори Pentium починаючи з другого покоління -
Pentium 75 і далі). Кожен ЦП виконує своє завдання, доручену йому
операційною системою (Novell NetWare, OS/2, Windows NT, UNIX). При цьому обидва ЦП
розділяють загальні ресурси комп'ютера, включаючи пам'ять і зовнішні пристрої. В
кожний момент часу шиною може керувати тільки один процесор з двох, по
певними правилами вони міняються ролями. Для обробки апаратних переривань
традиційні стають непридатними апаратні засоби, так як пежняя схема
подання запиту INTR і передачі вектора в циклі INTA # орієнтована на
єдиність ЦП. Для вирішення цього завдання в структуру Pentium починаючи з
другого покоління був включений APIC. Цей контролер має зовнішні сигнали
локальних переривань (LINT) і трьохпровідний інтерфейсну шину, за якою обидва
процесора зв'язуються з контролером периваній на системній платі. Запити
локальних переривань обслуговує процесор, на висновки якого надходять їх
сигнали; загальні (колективні) переривання приходять до процесорів у вигляді повідомлень
по інтерфейсу APIC. Таким чином, контролери APIC кожного з процесорів і
контролер переривань на системній платі, пов'язані інтерфейсом APIC виконують
маршрутизацію переривань.
У режимі FRC обидва процесора (один - Master, другий - Checker) виступають як одна
логічний. Основний процесор (Master) працює в звичайному однопроцесорному
режимі. Перевіряючий (Checker) виконує всі ті ж операції вхолосту, не
керуючи шиною, і порівнює вихідні сигнали основного з тими, які
генерує він сам. У разі виявлення розбіжності виробляється сігналл
помилки IERR, який може оброблятися як переривання.
При побудові багатопроцесорної системи можна використовувати поцессори різного
степпінгу, але частоти ядра повинні збігатися (шина синхронізується загальним
сигналом).
Блок-діаграма процесорів P54 розташована нижче:
Нижче наведена діаграма мультипроцесорної системи:
Процесор Pentium MMX - P55C.
У 1996 році Intel розробила процесор з новим розширенням, орієнтованим на
застосування в мультимедіа, 2D та 3D графіку. Отже, P55C це:
Збільшені кеші команд і даних - по 16К кожний.
Розширена CMOS (E-CMOS) технологія дозволила розташувати на кристалі 4.5
мільйонів транзисторів.
Збільшено кількість ступенів конвеєра.
Поліпшено спосіб пророкування розгалужень (він був запозичений у Pentium PRO).
Кількість буферів запису збільшено вдвічі, тепер їх чотири.
Для мультипроцесорної системи реалізований тільки режим SMP, FRC виключений.
І, нарешті, найцікавіше! На кристалі розташований новий блок - блок MMX
(Multi Media Extention), який дозволяє обробляти цілочисельні дані
(певного типу - нового) методом SIMD (Single Instruction Multiple Data) -
одна інструкція паралельно обробляє декілька даних. Для реалізації блоку
MMX були введені:
вісім додаткових 64-бітових регістра (ММ0. .. ММ7)
чотири нових цілочисельних типу даних. Регістри MMX можуть містити упаковані
64-бітові типи даних - упаковані байти, упаковані слова, упаковані
даойние слова і квадро-слова (дивись малюнок).
57 нових інструкцій для одночасної обробки декількох одиниць даних
одночасно.
Насправді, регістри MMX фізично розташовані в стеку регістрів FPU, так що
нових регістрів цей процесор не надає, і чергування використання
програмою інструкцій FPU і MMX призводить до зниження ефективності роботи,
пов'язаного з необхідністю пересилань даних з стека в пам'ять і назад. В
принципі, ефективність MMX викликає деякі сумніви, тому що ті функції, для
яких вони доцільні, з незаперечно великим успіхом виконуються графічними
акселераторами, які вже стали повсякденними J. До того ж для використання
нових команд необхідна перекомпіляція ПЗ. Можна припустити, що введення MMX
є першою сходинкою у маніакальному прагненні Intel перенести всю роботу в
ПК на плечі центрального процесора, що отримав подальше поширення в
Katmai (Pentium III) у вигляді нових KNI (SSE)-команд (згадаймо рекламу: Pentium
III - нові можливості Internet, хе-хе).
Блок-діаграму процесора P55C можна побачити тут:
Процесор P6 - Pentium PRO.
Революційна річ у своєму роді. Випущено десь в районі 1995 року. Перші
екземпляри були виконані за 0.6 мкм BiCMOS-технології. Потрійна суперскалярна
архітектура (конвеєр має 12 рівнів і підтримує динамічне виконання
інструкцій) - можливе виконання 3-х команд за такт.
Шина адреси розширена до 36 розрядів, відповідно максимальний розмір
адресується пам'яті становить 64 Гб. Розрядність шини даних - 64 біта.
Кеші. Кеш L1 складається, як і в попередніх процесорах, з кеша команд + кешу
даних, обидва по 8К. На кристалі (!) Інтегрований синхронний кеш другого рівня
L2 об'ємом 256К, 512К або 1024К. У пізніх версіях його розмір досягає 2М. Кеш
L2 підключений до внутрішньої шини і працює на частоті ядра.
У процесорах цієї серії застосовується технологія динамічного виконання, тобто
всередині процесора інструкції можуть виконуватися не в тому порядку, який
припускає програмний код. При цьому команди, які не залежать від результатів
попередніх операцій, можуть бути виконані у зміненому порядку, але
послідовність вивантаження результатів у пам'ять і порти буде відповідати
початкового програмного коду. (Чому це все ж таки машина фон-Неймана? А
тому, що підтвердження виставляються в тому порядку, який передбачає
програмний код). Динамічне виконання включає в себе:
Глибокий прогноз розгалужень, який дозволяє декодувати інструкції за
межами розгалужень, щоб підтримувати конвеєр в максимально повному стані
(не давати йому простоювати). Цим займається модуль Fetch/Decode (див. малюнок),
використовує оптимізовані алгоритми прогнозу.
Динамічний аналіз потоку даних. Модуль Dispatch/Execute може одночасно
перевірити декілька інструкцій і виконати їх у тому порядку, який найбільш
оптимальний. Він виконує всі доступні інструкції, записує їх у пул
інструкцій, і зберігає результати у тимчасових регістрах; після чого пристрій
Retire переглядає пул інструкцій з метою виділити ті з них, результат
виконання яких вже не залежить від виконання інших інструкцій. Коли такі
завершені інструкції виявляються, Retire Unit відправляє результати
виконання цих інструкцій в пам'ять і/або в регітри загального призначення та регістри
даних FPU, в порядку проходження, запропонованим програмою.
Інтелектуальне виконання. Ця властивість виражається в можливості процесора
виконувати команди випереджаючи програмний лічильник, але в той же час дозволяє
отримувати результати, що відповідають виконання команд у вихідній
послідовності.
У Pentium PRO застосована архітектура подвійної незалежної шини (Dual Independent
Bus). Одна шина - системна - служить для спілкування ядра з основною пам'яттю і
інтерфейсними пристроями, інша - внутрішня - призначена виключно
для обміну з вторинним кешем. Застосування динамічного виконання різко
підвищує частоту запитів процесорного ядра до шини за даними пам'яті і
інструкціями, оскільки ядро одночасно обробляє нескольео інструкцій. Для
обходу вузького місця - зовнішньої шини - кристал процесорного ядра і використовує
технологію подвійної незалежної шини. Значний обсяг вторинного кеша
дозволяє задовольняти більшість запитів до пам'яті суто локально, при цьому
коефіцієнт завантаження шини досягає 90% (необхідно зазначити, що обмін даними
по внутрішній шині відбувається значно швидше, ніж із зовнішньої, так як кеш
L2 працює на частоті ядра, тобто близько 200 МГц). Друга шина процесорного
кристалу виходить на зовнішні виводи мікросхеми, вона і є системною шиною
процесора Pentium PRO. Ця шина працює на зовнішній частоті (66,6 МГц)
незалежно від внутрішньої шини. Завантаження процесором зовнішньої шини для звичайних
рядових застосувань складає близько 10% від її пропускної спроможності, а для
серверних застосувань може досягати 60% при чотирипроцесорний конфігурації.
Таким чином, обмежена пропускна спроможність зовнішньої шини (533 Мбайт/с в
піку пакетної передачі) перестає сильно стримувати продуктивність
процесора. Зниження навантаження на зовнішню шину дозволяє ефективно використовувати
багатопроцесорну архітектуру.
У систему команд введені інструкції умовної пересилання даних, що дозволяють
скоротити кількість умовних переходів. При цьому підвищується передбачуваність
коду, звідси й ефективність використання конвеєра.
Інтерфейс системної шини розрахований на об'єднання до чотирьох процесорів в
сімметрічнцю мультипроцесорних систем (SMP).
Роз'єм для установки - ZIF Socket 8.
У висновку можна помітити, що Pentium PRO завжди був досить дорогим
процесором через низький відсотка корисного виходу кристалів з пластини, так
як найчастіше кристал відбраковується з-за поганої якості кеша L2, до
якості великого обсягу якого пред'являються дуже жорсткі вимоги.
Процесор Pentium II.
Фактично Pentium II є продовженням лінійки Pentium PRO з новими
удосконаленнями а також спрощеннями, введеними для здешевлення
собівартості процесора. Ця модель з'явилася в 1997 році. Основні відмінності
(розглядаємо самі ранні PII на ядрі Klamath/Deschutes) від PRO:
Розрядність шини адреси і шини даних як і в PRO - 36/64 бита.
Кілька вдосконалений конвеєр.
Збільшено розмір L1-кеша. Тепер це 16К 16 До під команди і дані відповідно.
Кеш другого рівня зібраний з кристала і розташований у вигляді двох мікросхем на
процесорній платі, розмір - 512К. Працює на половинній частоті ядра.
Все та ж архітектура подвійної незалежної шини.
Є блок для виполненіяMMX - інструкцій (чого не було в PRO, так як він
вийшов ще до P55C - Pentium MMX).
Можливе об'єднання двох процесорів в багатопроцесорну систему, що працює в
режимі SMP.
Конструктивно виконаний інакше. Сам процесор розташований на процесорній платі з
друкованим крайовим роз'ємом (картридж SECC), на ній же розташовуються два
мікросхеми кеша L2. Роз'єм для картриджа - Slot1 (Slot2 для Xeon, SlotM для
Merced ...).< br />