Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архітектура / Lekciyi / 011_processory.doc
Скачиваний:
32
Добавлен:
14.04.2015
Размер:
617.47 Кб
Скачать

Швидкодія процесора

Швидкодія це одна з характеристик процесора, яку часто тлумачать по-різному. Тут ви дізнаєтеся про швидкодію процесорів взагалі і процесорів Intel зокрема.

Швидкодія комп'ютера багато в чому залежить від тактової частоти, звичайно вимірюваної в мегагерцах (Мгц). Вона визначається параметрами кварцового резонатора, що є кристалом кварцу, заключеним в невеликий олов'яний контейнер. Під впливом електричної напруги в кристалі кварцу виникають коливання електричного струму з частотою, визначуваною формою і розміром кристала. Частота цього змінного струму і називається тактовою частотою. Мікросхеми звичного комп'ютера працюють на частоті декількох мільйонів герц. (Герц — одне коливання в секунду.) Швидкодія вимірюється в мегагерцах, тобто в мільйонах циклів в секунду.

Якнайменшою одиницею вимірювання часу (квантом) для процесора як логічного пристрою є період тактової частоти, або просто такт. На кожну операцію витрачається мінімум один такт. Наприклад, обмін даними з пам'яттю процесор Pentium П виконує за три такти плюс декілька циклів очікування. (Цикл очікування — це такт, в якому нічого не відбувається; він необхідний тільки для того, щоб процесор не "тікав" вперед від менш швидкодійних вузлів комп'ютера.)

Розрізняється і час, що витрачається на виконання команд.

  • 8086 і 8088. У цих процесорах на виконання однієї команди йде приблизно 12 тактів.

  • 286 і 386. Ці процесори зменшили час на виконання команд приблизно до 4,5 тактів.

  • Процесор 486 і велика частина Intel-сумісних процесорів четвертого покоління, таких, як AMD 5x86, зменшили цей параметр до 2 тактів.

  • Серія Pentium, Кб. Архітектура процесорів Pentium і інших Intel-сумісних процесорів п'ятого покоління, створених в AMD і Cyrix, включаюча двійні конвейєри команд і інші удосконалення, забезпечила виконання однієї або двох команд за один такт.

  • Pentium Pro, Pentium П/Ш/Celeron і Athlon/Duron. Процесори класу Р6, а також другі процесори шостого покоління, створені компаніями AMD і Cyrix, дозволяють виконати мінімум три команди за один такт.

Різна кількість тактів, необхідних для виконання команд, утрудняє порівняння продуктивності комп'ютерів, засноване тільки на їх тактовій частоті (тобто кількості тактів в секунду). Чому при одній і тій же тактовій частоті один процесор працює швидше за інше? Причина криється в продуктивності.

Процесор 486 володіє вищою швидкодією в порівнянні з 386-им, оскільки на виконання команди йому вимагається в середньому в два рази менше тактів, ніж 386-му. А процесору Pentium — в два рази менше тактів, ніж 486-му. Таким чином, процесор 486 з тактовою частотою 133 Мгц (типа AMD 5x86-133) працює навіть повільніше, ніж Pentium з тактовою частотою 75 Мгц! Це відбувається тому, що при одній і тій же частоті Pentium виконує удвічі більше команд, ніж процесор 486. Pentium П і Pentium Ш— приблизно на 50% швидший за процесор Pentium, що працює на тій же частоті, тому що вони можуть виконувати значно більше команд протягом тієї ж кількості циклів.

Порівнюючи відносну ефективність процесорів, можна побачити, що продуктивність Pentium Ш, працюючого на тактовій частоті 1 000 Мгц, теоретично рівна продуктивності Pentium, працюючого на тактовій частоті 1 500 Мгц, яка, у свою чергу, теоретично рівна продуктивності процесора 486, працюючого на тактовій частоті 3 000 Мгц, а вона, у свою чергу, теоретично рівна продуктивності процесорів 386 або 286, працюючих на тактовій частоті 6 000 Мгц, або ж 8088-го, працюючого на тактовій частоті 12 000 Мгц. Якщо врахувати, що первинний PC з процесором 8088 працював на тактовій частоті, рівній всього лише 4,77 Мгц, то сьогоднішні комп'ютери більш ніж в 1,5 тис. раз швидші в порівнянні з ним. Тому не можна порівнювати продуктивність комп'ютерів, ґрунтуючись тільки на тактовій частоті; необхідно брати до уваги те, що на ефективність системи впливають і інші чинники.

Оцінювати ефективність центрального процесора досить складно. Центральні процесори з різною внутрішньою архітектурою виконують команди по-різному: одні і ті ж команди в різних процесорах можуть виконуватися або швидше, або повільніше. Щоб знайти задовільну міру для порівняння центральних процесорів з різною архітектурою, працюючих на різних тактових частотах, Intel винайшла специфічний ряд еталонних тестів, які можна виконати на мікросхемах Intel, щоб зміряти відносну ефективність процесорів. Ця система тестів недавно була модифікована для того, щоб можна було вимірювати ефективність 32-розрядних процесорів; вона називається індексом (або показником) iCOMP 2.0 (intel Comparative Microprocessor Performance — порівняльна ефективність мікропроцесора Intel). В даний час використовується третя версія цього індексу — iCOMP 3.0. Докладнішу інформацію про еталонні тести, включаючи індекс iCOMP, можна одержати на одному з Web-вузлів Intel за адресою: http://developer.intel.com/procs/perf/resources/spectrum.htm.

Індекс iCOMP 2.0 обчислюється за результатами декількох незалежних випробувань і досить об'єктивно характеризує відносну продуктивність процесора. При підрахунку iCOMP враховуються операції з плаваючою комою і операції, необхідні для виконання мультимедійних програм.

Не так давно компанія Intel анулювала індекс iCOMP 2.0 і випустила його нову версію — індекс iCOMP 3.0. Ця версія є оновленим еталонним тестом, що враховує все зростаюче використання тривимірної графіки, мультимедійних засобів, технологій і програмного забезпечення Internet, а також обробку могутніх потоків даних і додатку, використовувані для інтенсивних обчислень. Індекс ICOMP 3.0, по суті, об'єднує в собі шість еталонних тестів: WinTune 98 Advanced CPU Integer, CPUMark 99, 3D WinBench 99-3D, MultimediaMark 99, Jmark 2.0 і WinBench 99-FPU WinMark. У результатах нових тестів враховується набір команд SSE (потокові розширення SIMD), а також додаткові команди для обробки графіки і звуку, використовувані в Pentium Ш. Результати, одержані при тестуванні серії процесорів Pentium Ш без урахування нового набору команд, будуть такими ж, як і для Pentium II, працюючих на аналогічній тактовій частоті.

У табл. 3.6 приведені індекси iCOMP 3.0 сімейства нових процесорів Intel Pentium Ш.

Таблиця 3.6. Індекси iCOMP 3.0 для процесорів

Процесор

Індекс

Процесор

Індекс

Pentium II 350

1000

Pentium III 650

2270

Pentium II 450

1240

Pentium III 700

2420

Pentium III 450

1500

Pentium III 750

2540

Pentium III 500

1650

Pentium III 800

2690

Pentium III 550

1780

Pentium III 866

2890

Pentium III 600

1930

Pentium III 1000

3280

Pentium III 600E

2110

Кеш-пам'ять першого рівня

У всіх процесорах, починаючи з 486-го, є вбудований (першого рівня) кеш-контроллер з кеш-пам'яттю об'ємом 8 Кбайт в процесорах 486DX, а також 32, 64 Кбайт і більш в сучасних моделях. Кеш — це швидкодійна пам'ять, призначена для тимчасового зберігання програмного коду і даних. Звернення до вбудованої кеш-пам'яті відбуваються без станів очікування, оскільки її швидкодія відповідає можливостям процесора, тобто кеш-пам'ять першого рівня (або вбудований кеш) працює на частоті процесора.

Таблиця 3.10. Об'єм пам'яті, що адресується процесорами компанії Intel

Тип процесора

Розрядність шини адреси

Байт

Кбайт

Мбайт

Гбайт

Тбайт

8088/8086

20

1048576

1024

1

-

-

286/386SX

24

16777216

16384

16

-

-

386Щ/486/КлассР5

32

4294967296

4194304

4096

4

-

Клас Р6 Клас Р7

36

68719476736

67108864

65536

64

-

Itanium

44

17592186044416

17179869184

16777216

16384

16

Примітка. Pentium і AMD Кб відносяться до процесорів сімейства 586 (п'яте покоління). Pentium Pro/II/III/Celeron і AMD Athlon/Duron до процесорів 686 (шосте покоління), а Pentium 4 розглядається як процесор 786 (сьоме покоління).

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

У сучасних процесорах вбудований кеш виконує ще важливішу роль, тому що він часто є єдиним типом пам'яті у всій системі, який може працювати синхронно з процесором. У більшості сучасних процесорів використовується множник тактової частоти, отже, вони працюють на частоті, у декілька разів перевищуючої тактову частоту системної платі, до якої вони підключені. Наприклад, тактова частота (1 ГГц), на якій працює процесор Pentium TTT, в сім з половиною разів перевищує тактову частоту системної платі, рівну 133 Мгц. Оскільки оперативна пам'ять підключена до системної платі, вона також може працювати тільки на тактовій частоті, що не перевищує 133 Мгц. У такій системі зі всіх видів пам'яті тільки вбудований кеш може працювати на тактовій частоті 1 ГГц. Розглянутий в даному прикладі процесор Pentium Ш на 1 ГГц має вбудований кеш загальним об'ємом 32 Кбайт (у двох окремих блоках по 16 Кбайт).

Якщо дані, необхідні процесору, знаходяться вже у внутрішній кеш-пам'яті, то затримок не виникає. Інакше центральний процесор повинен одержувати дані з кеш-пам'яті другого рівня або (у менш складних системах) з системної шини, тобто безпосередньо з основної пам'яті.

Щоб зрозуміти значення кеш-пам'яті, необхідно порівняти відносні швидкості процесорів і ОЗУ. Основна проблема полягає у тому, що швидкодія процесора виражається звичайно в Мгц (у мільйонах тактів в секунду), тоді як швидкість пам'яті виражається в наносекундах (тобто мільярдних частках секунди).

Для того, щоб розібратися з принципами роботи кеш-пам'яті першого і другого рівнів, розглянемо наступну аналогію.

Герой нашої історії (в даному випадку — ви), куштуючий різні страви, виступає в ролі процесора, який витягує необхідні дані з пам'яті і проводить їх обробку. Кухня, на якій готуються ваші улюблені блюда, є основною оперативною пам'яттю (SIMM/DIMM). Офіціант є кеш-контроллером, а стіл, за яким ви сидите, виступає як кеш-пам'ять першого рівня. Роль кеш-пам'яті другого рівня виконує візок із замовленими блюдами, неквапом мандрівна між кухнею і вашим столом.

Ролі розподілені, пора починати нашу історію. Щодня, приблизно в один і той же час ви обідаєте в певному ресторані. Входьте в обідній зал, сідаєте за столик і замовляєте, наприклад, хот-дог. Для того, щоб зберегти відповідність подій, припустимо, що середня швидкість поглинання їжі рівна одному біту в чотири секунди (цикл процесора 233 Мгц складає близько 4 нс). А також визначимо, що кухарю (тобто кухні) для приготування кожного замовленого блюда потрібно 60 с (значить, швидкість основної пам'яті 60 нс).

Таким чином, при перших відвідинах ресторану ви сідаєте за столик і замовляєте хот-дог, після чого доводиться чекати цілих 60 секунд, коли ж приготують замовлене блюдо. Коли офіціант нарешті приносить замовлення, ви не поспішаючи, з середньою швидкістю, приймаєтеся за їжу. Швидко доївши хот-дог, кличете до себе офіціанта і замовляєте гамбургер. Поки його готують, ви знову чекаєте тих же 60 секунд. Принесений гамбургер з'їдається з тією ж швидкістю. Підібравши останні крихти, знову звете офіціанта і замовляєте котлети "по-київськи". Після 60-секундного очікування принесене блюдо з'їдається з аналогічною швидкістю. Після цього вирішуєте замовити на десерт, скажімо, яблучний пиріг. Замовлений пиріг ви одержуєте після того, що став звичним 60-секундного очікування. Одним словом, обід складається головним чином з тривалих очікувань, які перемежаються енергійним поглинанням блюд, що замовляються.

Після того, як ви два дні підряд рівно в 18.00 приходите в ресторан і замовляєте одні і ті ж блюда в одній і тій же послідовності, у офіціанта з'являється ділова думка: "Сьогодні в 18.00 знову з'явиться цей дивний відвідувач і зробить своє звичне замовлення: хот-дог, гамбургер, котлети "по-київськи" і яблучний пиріг на десерт. Чом би не приготувати ці блюда наперед? Я думаю, він належним чином оцінить мої старання". Отже, ви приходите в ресторан, замовляєте хот-дог, і офіціант зразу ж, без щонайменшої паузи, ставить перед вами замовлене блюдо. Після того, як ви обробилися з хот-догом і збираєтеся замовити чергове блюдо, на столі з'являється тарілка з гамбургером. Частина обіду, що залишилася, проходить приблизно так само. Ви стрімко, з швидкістю один біт в чотири секунди, поглинаєте їжу, не чекаючи, поки замовлене блюдо буде приготоване на кухні. На цей раз час обіду заповнений виключно ретельним пережовуванням їжі, і все завдяки кмітливості і практичному підходу офіціанта.

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

Настав день четвертий. Ви з'являєтеся в ресторані, як завжди, рівно в 18.00 і починаєте із звичного хот-дога. Офіціант, що вивчив на той час ваші смаки, вже приготував хот-дог, і ви зразу ж приступаєте до трапези.

Після хот-дога офіціант приносить вам гамбургер і замість слів подяки чує: "Взагалі-то, я гамбургер не замовляв. Принесіть мені, будь ласка, відбивну". Офіціант помилився в своїх припущеннях, і вам знову доведеться чекати цілих 60 секунд, поки на кухні приготують замовлене блюдо. Подібна подія, тобто спроба доступу до тієї частини кешованого файлу, який відсутній в кеш-пам'яті, називається промахом кеша (cache miss). Як наслідок, виникає пауза або, якщо говорити про систему Pentium 233 Мгц, при кожному промаху кеша швидкодія системи знижується до 16 Мгц (тобто до швидкості оперативної пам'яті). Кеш-пам'ять першого рівня більшої частини процесорів Intel має коефіцієнт збігу, рівний приблизно 90%.

Це означає, що кеш-пам'ять містить коректні дані 90% часу і, отже, процесор працює на повній швидкості (в даному випадку з частотою 233 Мгц) приблизно 90% всього часу. Що залишилися 10% часу кеш-контроллер звертається до повільнішої основної пам'яті, при цьому процесор знаходиться в стані очікування. Фактично відбувається зниження швидкодії системи до рівня оперативної пам'яті, швидкодія якої рівна 60 не (або 16 Мгц).

У нашому прикладі швидкодія процесора приблизно в 14 разів вища за швидкодію оперативної пам'яті. З розвитком наукового прогресу, швидкодія пам'яті збільшилася з 16 Мгц (60 не) до 266 Мгц (3,8 не), тоді як тактова частота процесорів виросла до 2 ГГц і більш. Таким чином, навіть в найсучасніших системах пам'ять все ще в 7,5 або більше разів повільніше за процесор. Кеш-пам'ять дозволяє компенсувати цю різницю.

Основна особливість кеш-пам'яті першого рівня полягає у тому, що вона завжди інтегрована з ядром процесора і працює на тій же частоті. Це властивість в поєднанні з коефіцієнтом збігів, рівним 90%, робить кеш-пам'ять важливої становлячої ефективності системи.

Кеш-пам'ять другого рівня

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

Розвиваючи аналогію з рестораном, можна позначити вторинний кеш як сервіровочний столик з "черговими" блюдами, розташування якого дозволяє офіціанту принести будь-яке з наявних блюд через 15 секунд. У системі класу Pentium (Socket 7), кеш-пам'ять другого рівня встановлена на системній платі, тобто працює на тактовій частоті системної платі (66 Мгц, або 15 не). Розглянемо ситуацію, коли ви замовляєте блюдо, якого немає в числі раніше принесених. В цьому випадку, замість того щоб відправитися на кухню і через 60 секунд принести приготоване блюдо, офіціант в першу чергу перевіряє столик з "черговими" блюдами. За наявності там замовленого блюда він повертається вже через 15 секунд. Результат в реальній системі виражається в наступному: замість зниження швидкодії системи з 233 до 16 Мгц і відповідно швидкодію основної пам'яті до 60 не відбувається витягання необхідних даних з кеш-пам'яті другого рівня, швидкодія якої рівна 15 не (66 Мгц). Таким чином, швидкодія системи змінюється з 233 до 66 Мщ.

Коефіцієнт збігу кеш-пам'яті як першого, так і другого рівнів складає 90%. Таким чином, розглядаючи систему в цілому, можна сказати, що 90% часу вона працює з повною тактовою частотою (у нашому прикладі 233 Мгц), одержуючи дані з кеш-пам'яті першого рівня; 10% часу дані витягуються з кеш-пам'яті другого рівня. Процесор працює з кеш-пам'яттю другого рівня тільки 90 % цього часу, а що залишилися 10% через промахи кеша— з повільнішою основною пам'яттю. Таким чином, об'єднуючи кеш-пам’ять першого і другого рівнів, одержуємо, що звична система працює з частотою процесора 90% часу (у нашому випадку 233 Мгц), з частотою системної платі 9% часу (тобто 90% від 10% при частоті 66 Мгц) і з тактовою частотою основної пам'яті приблизно 1% часу (10% від 10% при частоті 16 Мгц). Це наочно демонструє важливість кеш-пам’яті першого і другого рівнів; за відсутності кеш-пам'яті система часто звертається до ОЗУ, швидкість якого значно нижче за швидкість процесора.

Це наводить на цікаві роздуми. Уявіть, що ви збираєтеся підвищити ефективність оперативної пам'яті або кеш-пам'яті другого рівня удвічі. На що ж саме витратити гроші? Беручи до уваги, що оперативна пам'ять безпосередньо використовується приблизно 1% часу, подвійне підвищення її продуктивності приведе до підвищення швидкодії системи тільки в цей період часу! Навряд це звучить достатньо переконливо. З другого боку, якщо удвічі підвищити ефективність кеш-пам'яті другого рівня, вийде збільшення швидкодії системи, відповідне 9% часу, і це, безумовно, істотніше поліпшення.

Системотехніки і фахівці з розробки процесорів компаній Intel і AMD, не втрачаючи часу дарма, розробили методи підвищення ефективності кеш-пам'яті другого рівня. У системах класу Pentium (Р5) кеш-пам'ять другого рівня звичайно встановлюється на системній платі і працює, відповідно, з її тактовою частотою. Intel значно підвищила продуктивність процесорів, перемістивши кеш-пам'ять з системної платі безпосередньо в процесор, що збільшило її робочу частоту до частоти процесора. Спочатку мікросхеми кеша встановлювалися в одному корпусі разом з основним процесором. Але така конструкція виявилася дуже дорогою, тому, починаючи з процесорів сімейства Pentium П, компанія Intel стала придбавати мікросхеми кеш-пам'яті у сторонніх виробників (Sony, Toshiba, NEC, Samsung і т.д.). Мікросхеми поставлялися вже в готовому вигляді, в корпусному виконанні, тому Intel почала їх встановлювати на монтажній платі поряд з процесором. Саме тому процесор Pentium П був спочатку розроблений у вигляді картріджа.

Одна з істотних проблем полягала в швидкодії мікросхем кеш-пам'яті сторонніх виробників. Швидкість найшвидших мікросхем досягала 3 не і вище, що було еквівалентно тактовою частоті 333 Мгц. Але процесори вже працювали на вищих швидкостях, тому в Pentium II і перших моделях Pentium TIT кеш-пам'ять другого рівня працює на половинній частоті процесора. У деяких моделях процесора Athlon швидкість кеш-пам'яті другого рівня зменшена до двох п'ятих або навіть однієї третини тактової частоти ядра.

Якісний стрибок в технології відбувся з появою процесорів Celeron 300A і вище. У цих процесорах зовнішні мікросхеми кеш-пам'яті другого рівня не використовуються. Натомість кеш-пам'ять як першого, так і другого рівнів інтегрована безпосередньо в ядро процесора. Таким чином, кеш-пам'ять обох рівнів працює з повною тактовою частотою процесора, що дозволяє підвищувати її швидкодію при можливому збільшенні швидкості процесора. У останніх моделях Pentium Ш, а також у всіх процесорах Хеоп і Celeron кеш-пам'ять другого рівня як і раніше працює з тактовою частотою ядра процесора, а значить, при невдалому обігу в кеш-пам'ять першого рівня очікування або уповільнення операцій не відбувається. У сучасних моделях процесорів Athlon і Duron також використовується вбудована кеш-пам'ять, що працює з частотою ядра. Як ви знаєте, при невдалому зверненні до зовнішньої кеш-пам'яті відбувається зниження швидкості кеша до половинної частоти ядра або, що ще гірше, до частоти повільнішої системної платі. Використовування вбудованого кеша дозволяє значно підвищити ефективність процесора, оскільки 9% часу в системі використовуватиметься кеш-пам'ять другого рівня, працююча з повною частотою ядра. До числа переваг вбудованої кеш-пам'яті відноситься також зменшення її вартості, оскільки вона містить менше компонентів.

Повернемося до розглянутої раніше аналогії, використовуючи як приклад сучасний процесор Pentium Ш з тактовою частотою 1 ГГц. Тепер швидкість поглинання їжі рівна одному байту в секунду (тактовій частоті 1 ГГц відповідає тривалість циклу 1 нс). Кеш-пам'ять першого рівня працює на цій же частоті, тобто швидкість вживання блюд, що знаходяться на вашому столі, рівна швидкості процесора (а ваш столик відповідає кеш-пам’яті першого рівня). Відчутне підвищення швидкодії відбувається у тому випадку, коли ви замовляєте блюдо, якого немає на столику (промах кеша першого рівня), і офіціанту доводиться звертатися до столика з "черговими" блюдами. У дев'яти випадках з десяти він знаходить там необхідне блюдо, яке приносить через 1 з (частота кеш-пам'яті другого рівня рівна 1 ГГц, що відповідає швидкості 1 не). Отже, сучасні системи працюють 99% часу (сумарний коефіцієнт збігу кеш-пам'яті першого і другого рівнів) з частотою 1 ГГц і, як і раніше, в одному випадку із ста знижують швидкість до частоти оперативної пам'яті (приготування блюда на кухні). При збільшенні швидкості пам'яті до 133 Мгц (7,5 не) час очікування замовленого блюда з кухні досягне 7,5 с. Ех, якби швидкість обслуговування в ресторані підвищувалася так само, як швидкодія процесора!

Режими процесора

Всі 32-розрядні і пізніші процесори Intel, починаючи з 386-го, можуть виконувати програми в декількох режимах. Режими процесора призначені для виконання програм в різних середовищах; у різних режимах можливості чіпа неоднакові, тому що команди виконуються по-різному. Залежно від режиму процесора змінюється схема управління пам'яттю системи і задачами.

Процесори можуть працювати в трьох режимах: реальному, захищеному і віртуальному реальному режимі (реальному усередині захищеного).

Соседние файлы в папке Lekciyi