Міністерство освіти Укаїни
Процесор як він є.
Коротка характеристика мікропроцесорів.
Що день прийдешній нам готує?
На межі фантастики.
Комп'ютер являє собою пристрій, здатний виконувати чітко визначену послідовність операцій, визначену програмою. Поняття "комп'ютер" є більш широким, ніж "електронно-обчислювальна машина" (ЕОМ) оскільки в останньому явний акцент робиться на обчислення. Персональний комп'ютер (ПК) характерний тим, що їм може користуватися одна людина, не вдаючись до бригади обслуговуючого персоналу і не відводячи під нього спеціального залу з особливим кліматом, потужною системою електроживлення та іншими атрибутами великих обчислювальних машин. Персональний комп'ютер зазвичай орієнтований на взаємодію з одним користувачем (можливо і більше), причому взаємодія відбувається через безліч середовищ спілкування - від алфавітно-цифрового і графічного діалогу за допомогою дисплея, клавіатури і миші до пристроїв віртуальної реальності, в яких поки не задіяні, напевно, тільки запахи. Коли використовується абревіатура PC (Personal Computer), мається на увазі ПК, сумісний з наймасовішим сімейством ПК фірми IBM і їх клонів.
Будь-який комп'ютер являє собою реалізацію так званої фон-неймановской архітектури обчислювальних машин. ця архітектура була представлена Джорджем фон Нейманом ще в 1945 році і має наступні основні ознаки. Машина складається з блоку управління, арифметико-логічного пристрою (АЛП), пам'яті і пристроїв введення - виведення. У ній (машині) реалізується концепція зберігається програми: програма і дані зберігаються в одній і тій же пам'яті. Що Їх дії визначаються блоком управління і АЛУ, які вшити є основою центрального процесора.
Процесор як він є.
В даний час під словом «процесор» мають на увазі мікропроцесор - мікросхему, яка, крім власне процесора, може містити й інші вузли - наприклад, кеш-пам'ять. Зараз набір арифметичних, логічних і інших інструкцій, яких виконує процесор налічує кілька сотень, а для потокової обробки придуманий принцип SIDM - безліч комплектів даних, які обробляються однією інструкцією (MMX, 3DNow. SSE, SSE2). У IBM-сумісних ПК застосовуються процесори, сумісні з сімейством 80х86 фірми Intel.
В оригінальній машині IBM PC використовувався процесор 8088 з 16 - розрядними регістрами. Всі наступні моделі процесорів, в тому числі 32 і 64 розрядні, включає в себе підмножина системи команд і архітектури попередніх моделей, забезпечуючи сумісність з раніше написаними ПО (програмним забезпеченням).
Під архітектурою процесора розуміється його програмна модель. тобто програмно - видимі властивості. Далі ми будемо розглядати процесори з архітектурою IA-32 (Intel Architecture 32 bit - архітектура Pentium - сумісних 32-х бітових процесорів), так як процесори даної архітектури найпоширеніші. Під мікроархітектури розуміється внутрішня реалізація цієї програмної моделі. Для однієї і тієї ж архітектури IA-32 різними фірмами і в різних поколіннях застосовуються істотно розрізняються мікроархітектурнимі реалізації, при цьому, природно, прагнуть до максимального підвищення продуктивності (швидкості виконання програм). Пояснимо деякі поняття:
Конвейеризация (pipelining) передбачає розбивку виконання кожної інструкції в кілька етапів, причому кожен етап виконується на своїй ступені конвеєра процесора. При виконанні інструкція просувається по конвеєру в міру звільнення наступних ступенів. Таким чином, на конвеєрі одночасно може оброблятися декілька послідовних інструкцій, продуктивність можна оцінювати темпом виходу виконаних інструкцій з усіх конвеєрів. Для досягнення максимальної продуктивності процесора - забезпечення повного завантаження конвеєрів з мінімальним числом зайвих штрафних циклів (penalty cycles) - програма повинна складатися з урахуванням архітектурних особливостей процесора. Конвеєр «класичного» процесора Pentium має п'ять ступенів. Конвеєри процесорів з суперконвейерная архітектурою мають більше число ступенів, що дозволяє спростити кожну з них і, отже, скоротити час перебування в них інструкцій. Конвеєр Pentium 4 має вже 20 ступенів.
Скалярним називають процесор з єдиним конвеєром, до цього типу належать усі процесори Intel до 486 включно. Суперскалярний процесор має більше одного конвеєра, здатних обробляти інструкції паралельно. Pentium є двухпотоковая процесором (має два конвеєра), Р6-трехпотоковим.
Починаючи з Pentium і деяких моделей 486 підтримують так само особливий режим системного управління SystemManagementMode (SMM), при якому процесор виходить в інше, ізольоване від інших режимів простір пам'яті. Цей режим використовується в службових та налагоджувальних цілях.
Процесори можуть оперувати з 8 -. 16 -, 32 - і навіть 64 - бітними операндами, рядками байт, слів і подвійних слів, а так само з битами, бітовими полями і рядками біт. Всі процесори мають целочисленное АЛУ (арифметико-логічний пристрій). Блоки FPU. MMX і XMM в архітектурі процесорів IA-32 x86 тримається особняком. Вони присутні не у всіх процесорах і навіть по схематичною реалізації є прибудовами до центрального процесора з його набором звичайних цілочисельних регістрів. Дані блоки призначені для прискорення обчислень.
Математичний співпроцесор призначений для розширення обчислювальних можливостей центрального процесора - виконання арифметичних операцій, обчислення основних математичних функцій (тригонометричних, експоненти, логарифма) і т.д. У різних поколіннях процесорів він називався по-різному - FPU (Floating Point Unit - блок чисел з плаваючою точкою) або NPX (Numeric Processor eXtention - числове розширення процесора). Співпроцесор підтримує сім типів даних: 16-, 32-й 64 - бітні цілі числа; 32 -, 64 -, 80 бітні числа з плаваючою точкою (FP - формати) і 18 - розрядні числа в двійковій-десятковому (BCD) форматі. Застосування співпроцесора підвищує продуктивність обчислень в сотні разів. FPU присутній у всіх сучасних процесорах; його не було в 486SX, а в попередніх процесорах він встановлювався додатково.
ТехнологіяMMX орієнтована на додатки мультимедіа, 2D / 3D- графіку і комунікації. Це розширення базової архітектури з'явилося тільки після виходу другого покоління процессоровPentium. Основна ідея ММХ полягає в одночасної обробки декількох елементів даних за одну інструкцію - так звана технологіяSIMD (SingleInstruction-MultipleData). Ще одна особливість технології ММХ - поддержкааріфметікі з насиченням (Saturatingarithmetic). Її відмінність від звичайної арифметики з циклічним переповненням полягає в тому, що при виникненні переповнення в результаті фіксується максимально-можливе значення для даного типу даних, а перенесення ігнорується. У разі переповнення знизу в результаті фіксується мінімально-можливе значення. Граничні значення визначаються типом (знаковою або беззнакову) і розрядністю змінних. Такий режим обчислення зручний, наприклад, для визначення кольорів. Збіги регістрів ММХ іFPUнакладивает обмеження на чергування кодовFPUі ММХ - турбота про це лежить на програмістові додатків з ММХ. Блок ММХ присутній практично на всіх сучасних процесорах.
Процесори PentiumIII-IVімеют так називаемоепотоковое расшіреніеSSE (в Р4-SSE2) (StreamingSIMDExtensions). Блок дозволяє виконувати векторні (вони ж пакетні) і скалярні інструкції. При виконанні інструкції з ХММ традиційне оборудованіеFPU / MMX не використовується, що дозволяє ефективно змішувати інструкції ММХ з інструкціями над операндами з плаваючою точкою. Тут блоки процесора міняються ролями - регістри ММХ, накладені на регістри традиційного співпроцесора, використовуються для цілочисельних потокових обчислень, а обчислення з плаваючою точкою покладаються на новий блок ХММ. Крім інструкцій з новим блоком ХММ в расшіренііSSEвходят і додаткові цілочисельні інструкції з регістрами ММХ, а так же інструкції управління кешуванням.
Розширення 3DNow! . введена фірмойAMDв процесорах ДО6-2 і вище, розширює можливості блоку ММХ. Технологія 3DNow! дає помітний результат при обробки графіки, хоча не претендує на витіснення графічних прискорювачів, а покликане служити їх потужним доповненням. При цьому зберігається програмна сумісність з колишніми процесорами і операційними системами (ОС). У процессорахAthlonнабор інструкцій 3DNow! був доповнений. З'явилися нові інструкції для процесорів (до 21 додалися ще 24), розширений набір інструкцій ММХ, розширено управління кешуванням. Частина інструкцій збігаються з однойменними інструкціяміSSE.
При відсутність математичного співпроцесора прикладна програма все-таки може використовувати інструкції FPU, але для цього операційна система повинна поддержіватьемуляцію співпроцесора. Емулятор співпроцесора - це програма - обробник переривання або виключення від співпроцесора, яка повинна «виловити» код операції співпроцесора, визначити місце знаходження даних і виконати необхідні обчислення, використовуючи целочисленную арифметику центрального процесора. Зрозуміло, що емуляція буде виконуватися у багато разів повільніше, ніж ті ж дії, що виконуються справжнім співпроцесором. Емуляція для блоків ММХ і ХММ не передбачено, ці блоки призначені для прискорення обчислень в додатках реального часу, і виконувати їх з вкрай низькою швидкістю емуляції було б просто безглуздо.
Кеш - пам'ять процесорів будується з урахуванням можливості звернень до пам'яті з боку зовнішніх абонентів - інших процесорів або інших контролерів шини. Процесори мають механізми зовнішнього спостереження за станом власного кешу з відповідними апаратними інтерфейсами. Для підтримки узгодженості даних кеша і основної пам'яті процесор обробляє цикли стеження (SnoopCycleіліInquireCycle), ініційовані зовнішнім (для нього) системою. У цих циклах, що відбуваються при зверненні до пам'яті з боку зовнішнього абонента, процесор визначає присутність затребуваної області в своєму власному кеші. Якщо область відображається в кеші, то дії процесора залежать від стану відповідного рядка кеша і типу зовнішнього звернення. Звернення по запису викличе онулірованіе цього рядка. Звернення з читання до області, відповідної модифікованої ( "брудної") рядку, викличе вивантаження її вмісту в основну пам'ять, перш ніж зовнішній абонент зробить реальний зчитування.
У просторі пам'яті комп'ютера є області, для яких кешіровавніе принципово не допустимо (наприклад, колективна пам'ять адаптерів) або для яких не придатна політика зворотної записи. Крім того. Кешування іноді корисно відключити при виконанні одноразово виконуваних ділянок програми (наприклад, ініціалізації) з тим, щоб з кеш-пам'яті не витіснялися більш корисні фрагменти.