Процесор (реферат)

Реферат на тему:

Процесор

План

1. Архітектури процесорів. 1.1 RISC.

1.2. CISC.

1.3. Параметри процесорів.

1.4. Процес виробництва.

2. Процесори Intel Architecture.

2.1. Історія процесорів ІА.

2.2. Як працюють процесори ІА-32.

2.3. Сучасні процесори ІА-32.

2.4. Процесори ІА-64.

Архітектури процесорів

Процесор, або більш повно — мікропроцесор, який також часто називають
ЦПП (CPU — central processing unit) є центральним компонентом
комп’ютера. Це розум, який прямо або опосередковано керує усім, що
відбувається усередині комп’ютера.

Коли фон Нейман уперше запропонував зберігати послідовність інструкцій,
так звані програми, у тій самій пам’яті, що й дані, це була дійсно
новаторська ідея. Опублікована вона в «First Draft of a Report on the
EDVAC» у 1945 p. Цей звіт описував комп’ютер, що складається з чотирьох
основних частин: центрального арифметичного пристрою, центрального
керуючого пристрою, пам’яті й засобів введення-виведення.

Сьогодні майже всі процесори мають фон-нейманівську архітектуру.

Кожен мікропроцесор має певну кількість елементів пам’яті, що
називаються регістрами, арифметично-логічний пристрій (АЛП) і пристрій
керування.

Регістри використовуються для тимчасового зберігання виконуваної
команди, адрес пам’яті, оброблюваних даних й іншої внутрішньої
інформації мікропроцесора.

В АЛП здійснюється арифметична й логічна обробка даних.

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

Сьогодні існує кілька напрямків у виробництві мікропроцесорів. Вони
розрізняються за принципами побудови архітектури процесора. Найбільш
розповсюдженими є архітектури RISC і CISC.

RISC

Мікропроцесори з архітектурою RISC (Reduced Instruction Set Computers)
використовують порівняно невеликий (скорочений) набір найбільш вживаних
команд, визначений у результаті статистичного аналізу великого числа
програм для основних областей застосування CISC — процесорів вихідної
архітектури. Усі команди працюють з операндами і мають однаковий формат.
Звертання до пам’яті виконується за допомогою спеціальних команд
завантаження регістра й запису. Простота структури і невеликий набір
команд дозволяють повністю реалізувати їхнє апаратне виконання й
ефективний конвеєр при невеликому обсязі устаткування.

Арифметику RISC — процесорів вирізняє високий ступінь дроблення
конвеєра. Цей прийом дозволяє збільшити тактову частоту (отже, і
продуктивність) комп’ютера; чим елементарніші дії виконуються в кожній
фазі роботи конвеєра, — тим вищою є частота його роботи. RISC —
процесори із самого початку були орієнтовані на реалізацію всіх
можливостей прискорення арифметичних операцій, тому їхні конвеєри мають
значно вищу швидкодію, ніж CISC-процесори. Тому RISC — процесори в 2—4
рази швидші, ніж CISC- процесори зі звичайною системою команд, що мають
таку ж саму тактову частоту, і більш високопродуктивні, незважаючи на
більший розмір програм. RISC- архітектура побудована на 4 основних
принципах:

1. Будь-яка операція повинна виконуватися за один такт, незалежно від її
типу.

2. Система команд повинна містити мінімальну кількість найчастіше
використовуваних найпростіших інструкцій однакової довжини.

• 3. Операції обробки даних реалізуються тільки у форматі «регістр —
регістр» (операнди вибираються з оперативних регістрів процесора, і
результат операції записується також у регістр; а обмін між оперативними
регістрами й пам’яттю виконується тільки за допомогою команд
завантаження/запису).

4. Склад системи команд повинен бути «зручним» для компіляції операторів
мов високого рівня.

Ускладнення RISC- процесорів фактично наближає їхню архітектуру до
CISC-архітектури.

Сьогодні кількість процесорів із RISC- архітектурою істотно зросла і їх
виробляють усі провідні фірми США, у тому числі фірми Intel, Motorola —
виробники основних сімейств процесорів із CISC-архітектурою.

CISC

Мікропроцесори з архітектурою CISC (Complex Instruction Set Computers,
архітектура обчислень із повною системою команд) реалізують на рівні
машинної мови комплексні набори команд різної складності, від простих,
характерних для мікропроцесора першого покоління, до дуже складних.
Більшість сучасних процесорів для персональних комп’ютерів побудована за
архітектурою CISC.

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

Поступове ускладнення CISC- процесорів відбувається в напрямку більш
досконалого управління машинними ресурсами, а також у напрямку зближення
машинних мов із мовами високого рівня.

Одночасно складна система команд і змінний формат команди процесором із
CISC- архітектурою призвели до швидкого зростання складності схем Так,
процесор 8086 містив 29 тис. транзисторів, 80 386 — 275 000, Pentium — 3
100 000, Pentium 4 — 42 млн транзисторів. Для того щоб такі процесори
взагалі могли працювати з прийнятним енергоспоживанням і розміщатися на
обмеженій площі, виробники працюють над мініатюризацією транзисторів.
Уже досягнутий рівень 0,09 мкм.

Параметри процесорів

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

Архітектуру мікропроцесора (МП) визначає розрядність слота і внутрішньої
шини даних МП. Перші МП ґрунтувалися на 4-розрядній архітектурі. Перші
ПЕОМ використовували МП із 8-розрядною архітектурою, а сучасні МП
побудовані на 32- і 64-розрядній архітектурі.

Мікропроцесори з 4- і 8-розрядною архітектурою використовували
послідовний принцип виконання команд, при якому чергова операція
починається тільки після виконання попередньої. У деяких МП із
16-розрядною архітектурою використовуються принципи паралельної роботи,
при якій одночасно з виконанням поточної команди здійснюється попередня
вибірка й зберігання наступних команд. У МП із 32-розрядною архітектурою
використовується конвеєрний метод виконання команд, при якому кілька
внутрішніх пристроїв МП працюють паралельно, здійснюючи одночасно
обробку декількох послідовних команд програми.

Адресний простір пам’яті визначається розрядністю адресних регістрів і
адресної шини МП. У 8-розрядних МП адресні регістри зазвичай складаються
з двох 8-розрядних регістрів, утворюючи 16-розрядну шину, яка адресує 68
КБ пам’яті. У 16-розрядних МП, як правило, використовуються 20-розрядні
адресні регістри, що адресують 1 МБ пам’яті. У 32-розрядних МП
використовуються 24- і 32-розрядні адресні регістри, що адресують від 16
МБ до 4 ГБ пам’яті.

Для вибірки команд і обміну даними з пам’яттю МП мають шину даних,
розрядність якої, як правило, збігається з розрядністю внутрішньої шини
даних, обумовленою архітектурою МП. Однак для спрощення зв’язку з
зовнішньою апаратурою зовнішня шина даних може мати розрядність меншу,
ніж внутрішня шина й регістри даних. Наприклад, деякі МП із 16-розрядною
архітектурою мають 8-розрядну зовнішню шину даних. Вони являють собою
спеціальні модифікації звичайних 16-розрядних МП і мають практично ту ж
саму обчислювальну потужність.

Одним з важливих параметрів МП є тактова частота його роботи й роботи
системної шини, що зазвичай задається зовнішніми синхросигналами. Для
сучасних процесорів стандартними є частоти системної шини 66, 100, 133
МГц, а власна частота сягає З ГТц. Виконання найпростіших команд
(наприклад, додавання двох операндів із регістрів або пересилання
операндів у регістрах МП) вимагає мінімально двох періодів тактових
імпульсів (для вибірки команди і її виконання). Складніші команди
вимагають для виконання до 10— 20 періодів тактових імпульсів. Якщо
операнди знаходяться не в регістрах, а в пам’яті, додатковий час
витрачаєтьсй на вибірку операндів у регістри й записи результату в
пам’ять;

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

Відповідно до закону Мура (сформульованого у 1965 р. Гордоном Муром,
одним із творців Intel), CPU подвоює свою потужність і можливості кожні
18 місяців. Цей закон діє протягом уже майже сорока років.

Однак закони фізики обмежують конструкторів у безпосередньому збільшенні
частоти, і хоча частоти зростають щороку, приріст продуктивності все ж
недостатній. Ось чому інженери постійно шукають спосіб змусити процесор
виконувати більший обсяг роботи за кожен такт. Інший напрямок розвитку
полягає в розширенні шини даних і регістрів. Навіть 4-бітні процесори
здатні складати 32-бітні числа, щоправда, виконавши масу інструкцій;
32-бітні процесори вирішують це завдання за одну інструкцію. Більшість
сьогоднішніх процесорів мають 32-розрядну архітектуру, на підході вже
64-розрядні

Процес виробництва

Кремній або силікон — це основний матеріал для виробництва чіпів. Це
напівпровідник, що, будучи присадженим добавками на спеціальній масці,
стає транзистором, основним будівельним блоком цифрових схем. Процес має
на увазі витравлювання транзисторів, резисторів, доріжок, що
перетинаються, і так далі на поверхні кремнію.

Спершу вирощується кремнієва болванка. Вона повинна мати бездефектну
кристалічну структуру, цей аспект накладає обмеження на її розмір.
Колись болванка обмежувалася діаметром у 2 дюйми, а зараз — 8 дюймів. На
наступній стадії болванка розрізається на шари, що називаються
пластинами (wafers). Вони поліруються до бездоганної дзеркальної
поверхні. На цій пластині й створюється чіп. Зазвичай з однієї пластини
робиться багато процесорів.

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

Щоб створити всі необхідні деталі, на всю поверхню пластини додаються
шари і зайві частини витравлюються знову. Для цього новий шар
вкривається фоторезистором, на який проектується образ необхідних
деталей. Після експозиції проявлення видаляє частини фоторезистора,
виставлені на світло, залишаючи маску, через яку проходило
витравлювання. Фоторезистор, що залишився, видаляється розчинником.

Цей процес повторюється, шар за шаром, До повного створення всієї схеми.
Зайвим є говорити, що деталі завбільшки у мільйонну частку метра може
зіпсувати дрібна порошина. Така порошинка може бути всюди, завбільшки
від мікрона до ста — а це в 3—300 разів більше, ніж деталь.
Мікропроцесори виробляються в надчистому середовищі, де оператори
одягнені в спеціальні захисні костюми.

Колись виробництво напівпровідників гарантувало задовільну якість менше
50 % працюючих чіпів. Сьогодні вихідний результат набагато вищий, але
ніхто не очікує 100 %. Як тільки новий шар додається, на пластину, кожен
чіп тестується й відзначається будь-яка невідповідність. Індивідуальні
чіпи відокремлюються і з цього моменту звуться матрицями. Погані
бракуються, а гарні упаковуються в PGA (Pin Grid Arrays)-корпус —
керамічний прямокутник із рядами штирків на дні; саме такий корпус
більшість людей приймають за процесор.

Intel 4004 використовував 10-мікронний процес: найменші деталі складали
одну 10-мільйонну метра. За сьогоднішніми стандартами це неймовірно.
Якщо припустити, що Pentium II виготовлений за такою технологією, він
був би за Розміром 14×20 см і був би повільним — швидкі транзистори малі
Більшість процесорів сьогодні використовують 0,13-мікронну технологію, а
на підході вже 1 «.09-мікронний процес.

Процесори Intel Architecture історія процесорів ІА

Архітектура Intel Architecture стала стандартом «де-факто» сучасної
комп’ютерної індустрії після того, як у 1981 р. компанія IBM вибрала для
свого першого персонального комп’ютера IBM PC процесор Intel 8088.
Основними факторами І такої популярності Intel вважає повну сумісність
програмного забезпечення, І розробленого під Intel Architecture
процесори, і чимраз більш серйозні збільшення І продуктивності, що
пропонувалися з появою нових поколінь процесорів.

Родоначальниками процесорної архітектури Intel Architecture були 16-роз-
І рядні процесори 8088 і 8086, причому об’єктний код, розроблений у
розрахунку І на них у 1978 p., і понині без проблем виконується на
останніх процесорах І 32-розрядної архітектури ІА-32.

Процесор 8086 мав 16-розрядні регістри загального призначення, 16-роз- І
рядну шину даних і 20-розрядну шину адреси, що дозволяло йому оперувати
адресним простором у 1 МБ. Відмінність процесора 8088 полягала у 8-роз-
І рядній шині даних.

Ці процесори привнесли сегментацію в архітектуру ІА-32. Пам’ять
розділялася на сегменти завбільшки до 64 КБ. Оперуючи чотирма
сегментними регістрами одночасно, процесор мав можливість адресації до
256 кілобайт пам’яті без переключення між сегментами. При цьому
20-розрядні адреси отримувалися шляхом додавання 16-розрядної адреси до
покажчика сегментного регістра.

Процесор 80286 привніс в архітектуру ІА-32 захищений режим. У ньому
вміст сегментних регістрів використовується як покажчики на таблиці
дескрипторів, які давали можливість 24-розрядної адресації, що складало
16 МБ адресного простору. До того ж з’явилася можливість перевірки
границь сегментів, опцій read і execute-only для сегментів і 4 рівні
захисту коду операційної системи від застосування і захист застосування
один від одного.

Intel 80386 став першим 32-розрядним процесором в архітектурі ІА-32. В
архітектуру введені 32-розрядні регістри загального призначення (GP —
general I purpose), що підходять як для зберігання адрес, так і для
операндів. Нижня й верхня половина зберегли можливість працювати як
самостійні регістри для забезпечення сумісності з попередніми
процесорами. Для забезпечення ефективного виконання коду, створеного під
ранні процесори, на 32-розрядних процесорах був уведений віртуальний
х86-режим.

Маючи 32-розрядну шину адреси, 80386 процесор підтримував адресацію до 4
ГБ пам’яті. При цьому була можливість використання як сегментованої
пам’яті, так і «плоскої», при якій усі сегментні регістри містили
покажчик на ту саму адресу, і в кожному сегменті доступним є весь
4-гігабайтний адресний простір. Для віртуального управління пам’яттю
вводиться сторінковий метод, при якому адресний простір ділиться на
фіксовані сторінки завбільшки по 4 кілобайти, ефективність якого значно
перевищувала використання сегментів» 16-розрядні інструкції, що
дісталися в спадщину від попередніх процесорів одержали можливість
працювати з 32-розрядними операндами й адресами, також був доданий ряд
нових 32-розрядних інструкцій.

В архітектурі процесорів Intel підтримується зворотна сумісність з
об’єктним кодом для зберігання сумісності програмного забезпечення, але
одночасно в кожному новому поколінні використовуються чимраз ефективніші
мікропроцесорні архітектури й технології конструювання. Intel працювала
над упровадженням і з’єднанням складної техніки архітектури mainframe у
мікропроцесорну архітектуру. Чимало моделей паралельної обробки набагато
посилювали продуктивність техніки, і процесор 80386 був першим
процесором ІА, у який включили шість рівнобіжних стадій. Це інтерфейсний
блок шини (доступ до пам’яті й пристрою введення/виведення інших
блоків), блок попереднього коду (одержує об’єктний код із блоку шини і
поміщає його в 16-байт-ну чергу), блок декодування інструкції (декодує
об’єктний код з попереднього блоку в мікрокод), блок Виконання (виконує
інструкції мікрокоду). сегментний блок (переводить логічні адреси в
лінійні адреси і виконує перевірку захисту), і сторінковий блок
(переводить лінійні адреси у фізичні, виконує перевірку сторінкового
захисту і містить кеш з інформацією про 32 найчастіше використовувані
сторінки).

У процесор i486 додана можливість паралельного виконання за допомогою
розширення блоку декодування інструкції й блоку Виконання процесора
80386 у п’ять конвеєрних стадій, де кожна стадія (якщо потрібно) працює
паралельно з іншими й одночасно може виконуватися до п’яти інструкцій у
різних стадіях. Кожна стадія може виконати свою роботу над однією
інструкцією за один такт, тобто процесор i486 може виконати роботу над
однією інструкцією за один такт CPU. Також до процесора i486 був доданий
8-кіло-байтний кеш L1 для збільшення відсотка інструкцій, що можуть бути
виконані за один такт: інструкції доступу в пам’ять (якщо операнд
знаходився в кеші L1). У процесорі i486 уперше на чіп з CPU був
інтегрований блок арифметичного пристрою з плаваючою комою (FPU) і
додані нові контакти, біти й інструкції для підтримки більш складних і
потужних систем (підтримку ІЛ-кеша й мультипроцесорності).

Пізніше Intel додала в процесор i486 SL Enhanced (розширений) функції
підтримки енергозберігання й інші можливості системного управління Ці
функції були розвинуті в процесорах 80386 SL і i486 SL, які були
спеціалізовані для швидко зростаючого ринку ноутбуків PC, що працюють
від батарей. Ці функції включали новий режим управління системою, який
запускається власним виділеним контактом переривання, що дозволяє
керувати системою (такою як керування енергозберіганням) і додається до
системи прозоро для інших операційних систем і всіх програм. Функції
стоп таймер і автоматична зупинка дозволяють CPU працювати на зниженій
частоті (для зберігання енергії) або зупинитися (зі зберіганням
поточного стану).

Процесор Pentium став першим процесором, у якому була застосована
супер-скалярна архітектура — два конвеєри, які називалися U і V,
дозволяли виконувати 2 інструкції за такт. Кількість Ll-кеша подвоїлася
— тепер на команди і дані припадало по 8 КБ, причому кеш даних
використовував ефективнішу схему зі зворотним записом. Для ефективного
передбачення переходів у циклічних конструкціях застосовувалася
вбудована таблиця розгалужень

У віртуальному х86-режимі на додаток до 4-кілобайтних сторінок з’явилася
підтримка 4-мегабайтних сторінок. Регістри залишилися 32-розрядними, але
Деякі внутрішні шини розширилися до 64 і навіть 128 розрядів. Також
64-роз-Рядною стала зовнішня шина даних. s

Останній процесор цього покоління, Pentium MMX. привніс в архітектуру
Розширений набір команд, що дозволяв ефективно оперувати упакованими
цілочисловими даними, які знаходяться в 64-розрядних ММХ-регістрах

У 1995 р. було представлене сімейство, процесорів Р6, що мало вже 3
незалежні конвеєри. Першим процесором цього сімейства був процесор
Pentium Pro.

Принципова відмінність цього сімейства полягає-в тому, що Р6 перетворює
команди х86 у внутрішні, RISC-подібні команди, їх називають
мікрокомандами (micro-ops). Це дозволяє усунути багато обмежень,
властивих набору команд х86: нерегулярність кодування команд, операції
цілочислових пересилань типу «регістр—пам’ять» і змінна довжина
безпосередніх операндів.

Шина адреси процесорів Р6 розширилася до 36 розрядів, що дозволяє
використовувати адресний простір обсягом до 64 ГБ.

У процесор Pentium II до архітектури процесора Pentium Pro додані
команди ММХ. Для процесора Pentium II вводиться нова специфікація
установки в материнську плату слота 1 і слота 2. У цій новій
специфікації кеш L2 виноситься з кристала. Для слота 1 і слота 2
використовується ножове з’єднання замість сокета. У процесорі Pentium II
збільшений кеш даних L1 і кеш інструкцій L1 до 16 КБ кожний. У процесорі
Pentium II розмір кеша L2 може бути 256 КБ, 512 КБ і 1 МБ або 2 МБ
(тільки для слота 2). Процесори слота 1 використовують «половинну
тактову частоту» шини, а процесори слота 2 використовують «повну тактову
частоту» шини.

Процесор Pentium !!!, випущений у 1999 p., привніс в архітектуру ІА-32
розширення SSE (Streaming SIMD (Single Instruction Multiple Data)
Extensions) — стали доступні нові 128-розрядні регістри і SIMD-операції
над упакованими операндами з плаваючою комою з одинарною точністю.

Як працюють процесори ІА-32

Повна обробка кожної інструкції займає певну кількість тактів процесора.
При цьому можна розділити процес обробки на етапи, що дозволить почати
виконання наступної команди відразу після того, як попередня команда
пройде перший етап — це, власне, і є принцип конвеєрної обробки
(pipelining), застосовуваний ще з часів процесорів i486 і Pentium, у
яких використовувався стандартний 5-ступінчастий конвеєр.

Суперконвесризація (superpipelining), застосована в сімействі Р6,
поділяє ступені стандартного конвеєра на дрібніші частини. Зі
збільшенням числа ступенів кожний окремий ступінь виконує меншу роботу
і, таким чином, містить менше апаратної логіки. Часовий інтервал між
надходженням набору вхідних впливів на входи схеми й появою результуючих
сигналів на її виходах — затримка поширення (propagation delay) — у
результаті стає істотно меншим.

Завдяки більш коротким затримкам поширення сигналу в кожному окремо
взятому ступені конвеєра стає можливим підвищення тактової частоти.

Аналогічний ефект зменшення затримок поширення сигналу досягається за
допомогою переходу на тонший технологічний процес, наприклад, з 0,18
мікрон на 0,13. Очевидний шлях підвищення продуктивності — збільшення
числа ступенів конвеєра й підвищення частоти процесора. Але
суперконвеєрна архітектура має серйозний недолік. При виконанні
неправильно передбачених переходів і операцій необхідне повне очищення
конвеєра, що займає тим більше часу, чим більше ступенів нараховує
конвеєр, причому зниження продуктивності в деяких випадках виходить
просто обтяжуючим.

Розглянемо роботу конвеєра процесора Р6, що складається з 12 ступенів.
Конвеєр можна розділити на три самостійні функціональні блоки — вхідний
блок упорядкованої обробки (in-order front end), відповідальний за
декодування

й обробку команд, ядро виконання зі зміною послідовності (out-of-order
core), де, власне, і відбувається виконання команд, і конвеєр
упорядкованого виведення команд із послідовності (in-order retirement).

Блок вибірки команди (instruction fetch unit) зчитує потік інструкцій з
1,1-кеша команд порціями по 32 байти за такт. Для пошуку початку команди
використовується поточний покажчик команди (IP-instruction pointer), а
потім команди передаються на три дешифратори. Перш ніж перейти до
розгляду роботи дешифраторів, розглянемо механізм передбачення переходів

Покажчик команди розраховується блоком вибірки команди на підставі
інформації, отриманої від буфера адреси переходу (ВТВ — branch target
buffer), і заснованої на бітах передісторії розгалужень, що генеруються
блоком цілочислових обчислень, призначеним для обробки мікрокоманд
переходів (Integer Unit). Передбачення переходів (розгалужень) покликано
звести до мінімуму холосту роботу конвеєра і забезпечити його
безперервним потоком команд. Узагалі, в середньому до 10 відсотків коду
програми складають безумовні переходи, що передають управління за новою
зазначеною адресою, і від 10 до 20 відсотків — умовні переходи, що
змінюють або не змінюють хід виконання програми в залежності від
результату порівняння або виконання якої-небудь іншої умови. У випадку,
якщо умовний перехід не виконується, програма просто продовжує виконання
наступної команди.

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

Для передбачення переходів процесор використовує розширений алгоритм
Yeh’a, що дозволяє з великою вірогідністю спрогнозувати, чи буде
виконуватися перехід. Якщо передбачення виявиться правильним, то
виконання продовжиться з малою затримкою або зовсім без затримки. Якщо ж
припущення помилкове, то частково виконані команди доведеться видаляти з
конвеєра, а нові команди вибирати з області пам’яті з правильною
адресою, декодувати й виконувати їх. Це спричинить за собою істотне
зниження продуктивності, що прямо залежить від глибини конвеєра — для
архітектури Р6 у випадку помилкового передбачення переходу втрати
складуть від 4 до 15 тактів.

Алгоритм передбачення розгалужень є динамічним дворівневим і ґрунтується
на поводженні команд переходу за попередній період часу (оскільки той
самий перехід часто виконується більш ніж один раз, наприклад у циклі),
а також на поводженні конкретних груп команд, для яких із великою
ймовірністю можна передбачити конкретний перехід. Точність передбачення
цього алгоритму складає приблизно 90 відсотків.

Отже, 16-байтові команди передаються в дешифратор команд (Instruction
Decoder), що складається з трьох паралельних дешифраторів, два з яких —
прості (Simple) і один — складний (Complex). Завдання кожного
дешифратора — перетворення ІА-інструкції на одну або кілька мікрокоманд
(micro-ops).

Прості дешифратори обробляють команди х86, трансльовані в єдину
мікрокоманду. Складний дешифратор працює з командами, яким відповідають
від однієї до чотирьох мікрокоманд. Деякі особливо складні команди
неможливо

безпосередньо декодувати навіть складним дешифратором, тому вони
переда-ються в планувальник послідовності мікрокоманд (MIS — microcode
instruction sequencer), що генерує необхідну кількість мікрокоманд. Якщо
простий дешифратор зустрічає команду, яка не піддається трансляції, то
вона передається в складний дешифратор або в планувальник послідовності
мікрокоманд.

У випадку, якщо складні й прості команди бездоганно вирівняні їхніми
відповідними дешифраторами, то дешифратори здатні генерувати загалом
шість мікрокоманд за такт, але, як правило, з усіх трьох дешифраторів за
один такт видаються три мікрокоманди, що відповідають у середньому
двом-трьом ІА-командам, які передаються в буфер відновлення
послідовності (ROB — Reorder Buffer). ROB містить 40 елементів
завбільшки 254 байт кожен і може зберігати мікрокоманду, два зв’язаних
із нею операнди, результат і кілька бітів стану.

Останнім етапом перед виконанням команд є відображення регістрів,
здійснюване в таблиці псевдонімів регістрів (RAT — register alias
table). Архітектура х86 передбачає тільки вісім 32-розрядних регістрів
загального призначення, а з таким малим числом регістрів імовірність
того, що дві сусідні команди будуть використовувати один регістр,
відносно велика. Відображення регістрів допомагає послабити вплив таких
реєстрових взаємозалежностей (register dependencies) — у разі потреби
запису в той самий регістр для двох команд їх неможливо буде виконати
позачергово без відображення регістрів, тому що пізніша команда не може
бути оброблена до завершення більш ранньої команди.

При відображенні регістрів відбувається перетворення програмних посилань
на архітектурні регістри в посилання на 40 фізичних регістрів
мікрокоманд, реалізованих у буфері оновлення послідовності. Власне
кажучи, процесор «розмножує клонуванням» обмежену кількість
програмованих архітектурних регістрів і відслідковує, які клони містять
найбільш пізні значення. Це запобігає затримкам, які у протилежному
випадку з’явилися б у процесі обробки команд взаємо-залежностями в
результаті конфліктуючих звертань до регістрів.

Станція-резервуар виступає диспетчером і планувальником мікрокоманд, для
чого безупинно сканує буфер оновлення послідовності й вибирає команди,
готові до виконання (що мають усі вихідні операнди). Результат виконання
повертається назад у буфер і зберігається разом із мікрокомандою до
виведення. Порядок виконання команд ґрунтується не на їхній первісній
послідовності, а на факті готовності команди і її операндів до
виконання, це і є out-of-order — виконання зі зміною послідовності.

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

Виконання мікрокоманд здійснюється двома цілочисловими блоками, двома ;
блоками обчислень із плаваючою крапкою й одним блоком взаємодії з
пам’яттю — таким чином, можливе виконання до п’яти мікрокоманд за такт
процесора.

Два цілочислові блоки здатні виконувати дві цілочислові мікрооперації
одночасно. Один із блоків розроблений спеціально для виконання операцій
переходу. Він здатний виявляти помилково передбачений перехід і
оповіщати буфер передбачення переходів про необхідність перезапуску
конвеєра.

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

Для операцій із плаваючою крапкою передбачені два блоки обчислень,
причому другий призначений для обробки SIMD-інструкцій.

Команди, що виконуються не в тій послідовності, яка запропонована
програмою (speculative), доводиться, зрештою, розташувати в належній
послідовності — інакше процесор не завжди зможе одержати правильні
результати.

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

Блок виведення здатний виводити три мікрокоманди за такт. Після того як
мікрокоманда виведена, вона видаляється з буфера оновлення
послідовності.

Операції запису в пам’ять відкладаються до того часу, поки мікрокоманда,
що їх викликала, не буде виведена. Для цього в Р6 передбачений буфер
упорядкування звертань до пам’яті (МОВ — memory order buffer), у якому
за командами, що видаються блоком запису в пам’ять, зберігається
інформація про дані й адреси. Буфер упорядкування звертань до пам’яті
пересилає дані в пам’ять тільки після того, як буфер оновлення
послідовності повідомить йому про те, що мікрокоманда, про яку зроблений
запис у пам’ять, знищується.

Сучасні процесори ІА-32

До процесорів архітектури ІА-32 із тих, що випускаються нині, належать
Pentium ІІІ, Celeron і Pentium 4. Процесори фірми AMD (такі як Athlon і
Duron), хоча й сумісні з ІА-32 за системою команд і загальними
принципами організації, однак не належать до неї.

Відлік шостого покоління процесорів почався з Pentium Pro, випущеного в
1995 р. Зараз до цього покоління належить Pentium II (1997 p.), Celeron,
Xeon (1998 p.) і Pentium !!! (1999 p.). Від попереднього покоління ці
процесори головним чином відрізняються застосуванням «динамічного
виконання» (зміни порядку виконання інструкцій) і архітектурою Подвійної
незалежної Шини. Тут вторинному кешу, введеному в процесор (але не в усі
моделі), виділяється окрема високошвидкісна магістраль. У ході еволюції
покоління до системи команд Pentium Pro, розширеної щодо Pentium із
метою скорочення умовних переходів, було додане розширення ММХ — так
з’явився Pentium П. Тепер ідею ММХ — одночасне виконання однієї
інструкції над групою операндів — поширили і на інструкції з плаваючою
крапкою: SSE (Streaming SIMD Extensions) — основний козир Pentium !!!.

Pentium 4

Процесор Pentium 4 можна віднести до сьомого покоління, тому що в ньому
Використано досить багато принципових нововведень. Для Pentium 4 Intel
розробила нову архітектуру, яку назвала Intel NetBurst
Micro-Architecture.

Для того щоб процесори могли працювати на частотах приблизно декількох
гігагерц, Intel збільшив довжину конвеєра Pentium 4 до 20 стадій (Hyper
Pipelined Technology), за рахунок чого вдалося навіть при технологічних
нор-мах 0,18 мкм домогтися роботи процесора на частоті в 2ГШ. Однак
через таке збільшення довжини конвеєра час виконання однієї команди в
процесорних тактах також помітно збільшується. Тому компанія добре
попрацювала над ‘ алгоритмами передбачення переходів (Advanced Dynamic
Execution). Кількість-1 попередніх завантажених інструкцій збільшилася
до 126 у порівнянні з 48 у Pentium ІІІ. Буфер, що зберігає адреси
умовних переходів, також збільшився з 512 байт до 4 КБ. Усе це дозволило
збільшити ймовірність правильного передбачення переходів на 33 %.

Для прискорення роботи цілочислових операцій у Pentium 4 застосована
технологія подвоєння внутрішньої тактової частоти (Rapid Execution
Engine). Два блоки АЛП (арифметично-логічний пристрій), що виконують
операції над цілочисловими даними, працюють на частоті вдвічі більшій,
ніж частота самого процесора.

Кеш 1-го рівня в процесорі також зазнав значних змін. На відміну від
Pentium ІІІ, кеш якого міг зберігати команди і дані, Pentium 4 має
всього 8 КБ кеш даних. Команди, що надходять для виконання у процесор,
зберігаються в так званому Trace Cache. Там вони зберігаються вже в
декодованому вигляді, тобто у вигляді послідовності мікрооперацій, що
надходять для виконання у виконавчі пристрої процесора. Об’єм цього кеша
складає 12 000 мікрооперацій.

Кеш 2-го рівня в Pentium 4, виконаний на ядрі Willamette, залишився з
обсягом 256 КБ. Ширина шини кеша L2 складає 256 біт, але латентність
кеша зменшилася вдвічі, що дозволило домогтися пропускної здатності кеша
в 48 Гб при частоті 1,5 ГГц.

Найцікавішою особливістю нових процесорів Pentium 4 є розширення набору
команд процесора інструкціями Streaming SIMD Extensions 2 (SSE2). На
відміну від AMD, яка сильно переробила блок FPU, Intel вирішила залишити
його практично без змін, але зате доповнила його безліччю команд для
роботи з потоками даних. До 70 інструкцій SSE, що працюють з потоковими
даними одинарної точності, додалися 144 інструкції для роботи з числами
подвійної точності, а також із цілими числами довжиною від одного до
восьми байтів. Оптимізація програм під SSE2 повинна збільшити їхню
продуктивність від 2 до 5 разів.

Конструктиви процесорів

Існують різні типи корпусів, усередині яких розміщаються сучасні
процесори ІА-32:

1 PQFP (Plastic Quad Flat Package — плоский прямокутний пластмасовий
корпус із виводами з чотирьох боків) — корпус для установки методом
поверхневого монтажу. Виводи зроблені з кожного боку у площині корпуса,
при монтажі відповідним чином згинаються. У цих корпусах випускалася
більшість процесорів 386, а також варіанти процесорів для ноутбуків.

2. SQFP (Shrink Quad Flat Package — корпус із виводами з чотирьох боків,
загнутими усередину) — для установки методом поверхневого монтажу або
вставки в роз’єми. За рахунок того, що виводи загнуті під корпус,
зменшується площа, займана корпусом на платі, а також збільшується
твердість виводів, оскільки їхні кінці впираються в спеціально зроблені
виїмки на нижній поверхні корпуса.

3. PGA (Pin Grid Array — «решітчаста» структура виводів) — керамічний
корпус із вертикальними виводами, розташованими на нижній поверхні
корпуса в кілька рядів. Установлюється переважно в роз’єми. У таких
корпусах випускалася частина процесорів 386 і переважна більшість
процесорів 486.

4. SPGA (Scattered PGA — модифікація з «розкиданими» виводами) — варіант
PGA, коли виводи розташовані в шаховому порядку. У цих корпусах
випускалися перші процесори Pentium.

5. PPGA (Plastic PGA — пластмасовий) — варіант PGA із металевим корпусом
для кристала і пластмасовим обрамленням, у яке запресовані виводи. У
таких корпусах випускаються процесори Pentium, Celeron, Pentium !!! і 4.

Сучасні процесори відрізняються великою розмаїтістю конструктивів.
Процесори Pentium II виготовлялися в конструктиві SECC і SEPP. Для цих
процесорів був розроблений Slot 1 — щілинний роз’єм з 242 контактами. У
цей самий слот встановлюються і процесори Celeron, і Pentium !!!. Слот
дозволяє працювати з частотою системної шини 66 або 100 МГц. Для Slot 1
призначені процесори з різними назвами «упакування»:

1. SECC — картридж процесорів Pentium II і Pentium !!!. Являє собою
друковану плату з установленими компонентами-. До мікросхем ядра і кеша
прилягає термопластина, що розподіляє тепло, до якої зовні кріпиться
вентилятор (або інший охолоджувальний пристрій). Попереду картридж
закритий кришкою.

2. SECC 2 — картридж для тих самих процесорів, який з’явився, починаючи
з частоти 350 МГц. Від попереднього відрізняється тим, що не має
термопласти-ни — зовнішні «холодильники» притискаються прямо до корпусів
мікросхем ядра і кеша, що знижує тепловий опір і підвищує ефективність
охолодження. Самі процесори, що встановлюються на SECC 2, можуть бути як
у корпусах PLGA (Plastic Land Grid Array), так і в OLGA (Organic Land
Grid Array).

3. SEPP (Single Edge Processor Package) — картридж процесорів Celeron,
що не має ні термопластини, ні кришки. Зовнішній радіатор притискається
прямо до корпуса ядра, а мікросхем вторинного кеша в процесорів Celeron
немає.

У процесорах Celeron ідея упакування в картридж себе вичерпала — одну
мікросхему ядра легко упакувати й у звичайний корпус зі штирковими
виводами. Так з’явився Celeron у корпусі PPGA (Plastic Pin Grid Array),
що зовні нагадує Pentium (у форм-факторі) Socket 370 (за кількістю
виводів). Він має 6 повних рядів контактів.

Сучасні процесори Pentium !!! і Pentium 4 також випускаються в
конструктиві PPGA.

Процесори ІА-64

Наприкінці 2001 p. Intel представила Itanium — перший процесор,
побудований з використанням архітектури нового покоління, спільно
розробленої двома компаніями. Хоча ця 64-розрядна архітектура
грунтується на багаторічних Дослідженнях Intel, HP, інших компаній і
університетів, вона радикально відрізняється від усього, що було дотепер
представлене на ринку.

Архітектура ця відома під назвою Intel Architecture-64 (ІА-64). ІА-64 не
є <>4-розрядним розширенням 32-розрядної архітектури х86 компанії Intel.
ІА-64 являє собою щось абсолютно нове — передову архітектуру, що
використовує довгі слова команд (long instruction words — LIW),
предикати команд (instruction predication), усунення розгалужень (branch
elimination), попереднє

завантаження даних (speculative loading) й інші хитрощі для того, щоб
«витягти більше паралелізму» із коду програм.

Архітектура Intel. IA-64 втілює концепцію EPIC (абревіатура від
Explicitly Parallel Instruction Computing — Обчислення з явним
паралелізмом команд). Концепція EPIC розроблена спільно фірмами Intel і
Hewlett-Packard, за їхніми заявами, EPIC — концепція тієї ж значущості,
що CISC і RISC. В ІА-64 використовується новий 64-розрядний набір
команд, розроблений також спільно фірмами Intel і HP. До того ж Itanium
повністю сумісний з архітектурою ІА-32. Подібно до того, як процесори
ІА-32 вміли переключатися між захищеним і реальним режимами, так і
процесори ІА-64 за допомогою вибору режиму виконують або інструкції
32-розрядного х86, або свої 64-розрядні інструкції.

У процесорі Itanium використовується методика припущення. Вона полягає в
тому, що інструкції і дані завантажуються в процесор (використовуючи
процесор як кеш) до того, як вони можуть знадобитися, а в деяких
випадках навіть якщо вони і не повинні знадобитися. Таке раннє
завантаження повинне відбуватися ] під час простою процесора. Перевага
цієї методики в тому, що при збігу завантажених даних із тими, котрі
потрібні були для подальшої роботи, зникає час очікування їхнього
завантаження з пам’яті.

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

Itanium має три кеші. Два кеші, L1 і L2, знаходяться на кристалі
процесора. Кеш третього рівня, L3, розташований на картриджі й має обсяг
4 МБ.

Досить великий відсоток площі кристала (близько 10 %) — зайнятий модулем
роботи з плаваючою крапкою (FPU). Для такої роботи в процесора є 128
82-бітних регістрів.

Що дає перехід на 64-бітний процесор? Перше — це можливість обробляти
8-байтну інформацію за такт процесора. Крім процесора, це має
підтримувати системна шина.

Друге — можливість використання 64 біт для адресації пам’яті. 32-бітний
процесор може адресувати 232, тобто приблизно 4,3 млрд байт. А 64-бітний
— 2й, тобто близько 18,4 квінтильйонів байт.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *