Міністерство освіти РФ p>
Череповецький державний університет p>
Кафедра ПЗ ЕОМ p>
Дисципліна: p>
«Організація ЕОМ та систем» p>
Курсова робота p>
Тема: «Тест: швидкодія мікропроцесора» p>
Виконав студент: Лужінскій Андрій p>
Група: 1ПО-32 p>
Прийняв викладач: Зуєв О.Н. p>
Підпис викладача _______________ p>
Дата здачі _______________ p>
Череповець 2001 p>
| | Зміст p>
§ 1. Завдання 3
§ 2. Огляд існуючих систем 3
§ 3. Недоліки існуючих систем 13
§ 4. Алгоритм рішення 14
§ 5. Опис алгоритму 16
§ 6. Лістинг програми 16
§ 7. Опис програми 20
§ 8. Експериментальні дані 20
§ 9. Отримані результати 21
§ 10. Висновки 23
§ 11. Список літератури 25 p>
§ 1. Завдання p>
Зробити тест, який перевіряє швидкодію мікропроцесора.
Проаналізувати кілька мікропроцесорів з різними характеристиками. P>
§ 2. Огляд існуючих систем p>
2.1. Введення p>
Створення фірмою Intel першого мікропроцесора в 1971 році поклало початокепохи комп'ютеризації. «Завдяки мікропроцесорах комп'ютери сталимасовим загальнодоступним продуктом », - заявив Тед Хофф (Ted Hoff), один звинахідників першого мікропроцесора.
За трохи більше ніж 25 років процесори пройшли воістину гігантський шлях.
Перший чіп Intel 4004 працював на частоті 750 КГц, містив 2300транзисторів і коштував близько $ 200. Продуктивність його оцінювалася в 60тис. операцій у секунду. На сьогоднішній день реальна продуктивністьмікропроцесорів перевершила 1300 Мгц.
Порівняння наведених значень підтверджують оцінку успіхівмікропроцесорної індустрії, дану засновником і головою радидиректорів фірми Intel Гордоном Муром (Gordon Moor): «Якщо бавтомобілебудування еволюціонувало зі швидкістю напівпровідниковоїпромисловості, то сьогодні «Роллс-Ройс» коштував би всього 3 долари, міг бипроїхати півмільйона миль на одному галоні бензину, і було б дешевше йоговикинути, ніж заплатити за паркування ».
Таке інтенсивний розвиток технологій в суспільстві, де основним предметомпраці стає інформація, є наслідком зростаючого попиту наосновні знаряддя праці - комп'ютери. На сьогоднішній день комп'ютеризаціяє одним з головних напрямків науково-технічного прогресу.
Кількість і якість вироблених у країні комп'ютерів, ступіньнасиченості обчислювальної техніки самих різних галузей стає однимз основних критеріїв її економічного і військового потенціалу.
У мікропроцесорах - найбільш складних мікроелектронних пристроях --втілені самі передові досягнення інженерної думки. В умовахвластивою даній галузі виробництва жорсткої конкуренції і величезнихкапіталовкладень, випуск кожної нової моделі мікропроцесора - так чиінакше, пов'язаний з черговим науковим, конструкторським, технологічнимпроривом. p>
2.2. Мікропроцесор Pentium.
На сьогоднішній день мікропроцесори Pentium компанії Intel займаютьлідируюче положення на ринку мікропроцесорів. Подивимося архітектуру цихпроцесорів.
Сімейство мікропроцесорів Pentium (II, Ш, 4) включає в себевисокопродуктивні процесори Intel, що працюють на частотах від тактових
60 до 2000 Мгц. Процесор Pentium повністю програмно сумісний зпопередніми мікропроцесорами Intel, і дозволяє застосовувати ранішерозроблені програми
На відміну від попередніх мікропроцесорів з системою команд х86, процесорисімейства Pentium мають ряд цілих технічних нововведень, до числаяких відносяться: p>
. суперскалярна архітектура; p>
. роздільні кеш-пам'яті для команд і даних; p>
. передбачення переходів; p>
. високопродуктивні операції з плаваючою точкою; p>
. вдосконалена 64-розрядна шина даних; p>
. засоби забезпечення цілісності даних; p>
. SL-технологія із засобами управління енергоспоживанням; p>
. підтримка багатопроцесорності; p>
. моніторинг продуктивності; p>
. підтримка різних сторінок пам'яті. p>
Розглянемо ці нововведення більш докладно. p>
I. Суперскалярна архітектура
Два конвеєра процесора можуть виконувати дві команди одночасно. Командивиконуються в 5 етапів: p>
1. предвибірки; p>
2. декодування 1; p>
3. декодування 2; p>
4. виконання; p>
5. запис результатів;
При цьому декілька команд можуть знаходитися на різних етапах виконання.
Проте два конвеєра не є незалежними. При зупинці одногозупиняється і інший. p>
Окремі кеш-пам'яті команд і даних p>
Кожна кеш пам'ять процесора має розмір 8 Кбайт (для версій Pentium I) і
16 Кбайт (для версій Pentium II, MMX, III). Кеш пам'яті є частковоасоціативними. Пошук необхідної інформації виконується в стандартних 32 --байтових рядках.
Буфер трансляції адрес (TLB) перетворює осередку зовнішньої пам'яті ввідповідну адресу даних в кеш пам'яті. p>
Передбачення переходів p>
Процесор Pentium - перший х86 сумісний мікропроцесор. Виконуєзатвердження переходів, використовуючи буфер BTB (Branch Target Buffer) і двабуфера попередньої вибірки.
Алгоритм попередження переходів процесора Pentium не тільки прогнозуєвибір простих гілок, але підтримує і більш складне прогнозування. Церобиться за допомогою зберігання в буфері BTB декількох адрес переходів. BTBзберігає до 256 результатів переходів, що дозволяє виконувати правильнепророкування з ймовірністю не менше 0,8. p>
II. Високопродуктивний блок операцій з плаваючою точкою
У процесорі застосовується блок обчислень з плаваючою точкою, що використовуєскладні восьмиступінчастою конвеєри і внутрішні функції. Більшістькоманд з плаваючою точкою починають виконуватися в одному з цілочисельнихконвеєрів, а потім передаються на конвеєри з плаваючою точкою. Множення іподіл реалізовані як внутрішні функції. p>
2.3. Архітектурні особливості мікропроцесорів p>
Типи команд мікропроцесора.
Під час еволюційного розвитку архітектур процесорів до складу системикоманд вводилися і закріплювалися складні команди, які, на думкурозробників, відповідали розв'язуваним завданням. Мірою цієї відповідностінайчастіше був обсяг двійкового коду програми.
Команди бувають різних типів: «регістр, регістр (регістр»; «пам'ять,пам'ять (пам'ять »;« регістр (пам'ять »та ін Складні команди модифікуютьвміст груп регістрів і комірок пам'яті, і для їх реалізації приприйнятних витратах обладнання, як правило, застосовуєтьсямікропрограммірованіе.
Команди називаються скалярними, якщо вхідні операнди і результати єчислами (скалярами).
Команди називаються векторними, якщо вхідні операнди і, можливо,результати є вектором (масивом) чисел, а для перетворення данихмасиву (вектора) використовується одна векторна команда.
Сама поява векторних команд обумовлено прагненням прискорити обробкумасивів даних за рахунок виключення витрати часу на вибірку та дешифруваннякоманд обробки, однакових для всіх компонент вхідних масивів.
При збереженні послідовних програм для прискорення обробкизастосовуються суперскалярні процесори, в яких за рахунок паралельноїроботи функціональних пристроїв процесора в одному такті виробляєтьсякілька скалярних результатів. p>
Структурний паралелізм мікропроцесорів.
Підвищення продуктивності мікропроцесорів досягається за рахунокзбільшення тактової частоти, вдосконалення паралельної і конвеєрноїобробки даних, а також зменшення часу доступу до пам'яті. Сучаснімікропроцесори містять десять і більше оброблюваних пристроїв, кожне зяких являє собою конвеєр. Ефективна завантаження паралельнофункціонуючих конвеєрів забезпечується або апаратурою процесора, абокомпілятором, на вхід якого надходять програми на послідовномумовою програмування, або спільно з апаратурою і компілятором.
У компіляторах використовується витончена техніка витягу паралелізму зпослідовних програм. Апаратура мікропроцесорів орієнтована навиділення більш простих форм паралелізму, у тому числі природного.
Прагнення використовувати властивий більшості програм природнийпаралелізм обчислення цілочисельних адресних виразів і власнеобробки даних у форматі з плаваючою точкою призвело до появирознесених структур (decoupled architecture). Умовно мікропроцесори ізрознесеною архітектурою називаються А - процесорами і Е-процесорами.
Рознесені архітектура дозволяє досягати при скалярною обробціпродуктивності, характерної для векторних процесорів, за рахунокпредвибірки даних з пам'яті і автоматичної розгортки декількохпослідовних витків циклу в А - процесорі. Проблеми розщепленняпрограми на підпрограми для А - і Е-процесора вирішуються на рівнікомпілятора або спеціальним блоком-расщепітелем. p>
Структурні методи зменшення часу доступу до пам'яті.
Удосконалення архітектури мікропроцесорів і механізму доступу допам'яті не може відбуватися без прийняття сукупності угод проструктурі програм і оброблюваних даних. Це обумовлено, наприклад, тим,що час доступу в основну пам'ять в десять і більше разів більше, ніж часвиконання перетворення даних в регістрах процесора. Тому необхіднознаходити рішення щодо зменшення часу доступу, що враховують цей факт.
Ієрархічна структура пам'яті. Ідеальна пам'ять повинна забезпечуватипроцесор командами так, щоб не викликати простоїв процесора. При цьомупам'ять повинна мати велику ємність. У сучасних умовах зменшеннячасу доступу досягається введенням багаторівневої ієрархії пам'яті. Часдоступу залежить від об'єму і типу використовуваної пам'яті.
Сучасна типова ієрархія пам'яті має наступну структуру: p>
. регістри 64 - 256 слів з часом доступу 1 такт процесора; p>
. кеш 1 рівня - 8к слів з часом доступу 1 - 2 такту; p>
. кеш 2-го рівня - 256К слів з часом доступу 3 - 5 тактів; p>
. основна пам'ять - до 4 Гігаслов з часом доступу 12 - 55 тактів.
Використовую крім основної пам'яті невелику і більш швидку буфернупам'ять, можна значно скоротити кількість звернень до основної пам'яті,за рахунок акумуляції фрагмента програмного коду в буферної пам'яті. Створенняієрархічної пам'яті за час, поки попередні блоки програм і данихміж рівнями пам'яті за час поки попередні блоки обробляютьсямікропроцесором, дозволяє істотно скоротити простої процесора вочікуванні даних. При цьому ефект зменшення часу доступу до пам'яті будетим більше, чим більше час обробки даних у буферній пам'яті попорівняно з часом пересилки між буферною і основною пам'яттю. Цедосягається при локальності оброблюваних даних, коли процесорбагаторазово використовує одні й ті ж дані для вироблення деякогорезультату.
У зв'язку з тим, що локально оброблювані дані можуть виникати вдинаміці обчислень, і не обов'язково сконцентровані в одній області пристатичному розміщенні в основній пам'яті, буферну пам'ять організують якасоціативний, в якій дані містяться в сукупності з їх адресою восновної пам'яті. Така буферна пам'ять одержала назву кеш-пам'ять.
Кеш має сукупність рядків, кожен з яких складається з фіксованогокількості одиниць у пам'яті (байт, слів з послідовними адресами
Типовий розмір рядки: 16,64,256 байтів).
Найбільш часто використовуються три способи організації кеш-пам'яті,що відрізняються обсягом апаратури, необхідної для їх реалізації. Це такзвана кеш-пам'яті з прямим відображенням (direct-mapped cache), частковоасоціативна кеш-пам'ять (set-associative cache) і асоціативна кешпам'ять (full associative cache).
Розшарування пам'яті. Іншим структурним способом зменшення часу доступудо пам'яті служить розшарування пам'яті. У припущенні, що вибірка з пам'ятівиконується за послідовним адресами можливе використання k блоківпам'яті з розміщенням у блоці I, де I = 0, ..., k-1, слів з адресами n = I + krrpmod k, де p = 0,1, ..., M. У цьому випадку можливе k паралельних звернення допам'ять за адресами, які належать різним блокам. Тому вибірка командпрограми за винятком команд, які обирають як результат розгалуження, можебути прискорена застосуванням розшарування пам'яті. Аналогічно може бути прискоренаобробка масивів даних
Багаторівнева ієрархія і розшарування пам'яті можуть використовуватисяспільно. p>
Способи вимірювання продуктивності
Пікова (технічна) продуктивністю представляють собою теоретичниймаксимум швидкодії комп'ютера при ідеальних умовах. Даний максимумвизначається як число обчислювальних операцій, які виконуються в одиницючасу всіма наявними в процесорі обробними логіко -арифметичними пристроями. Ліміт швидкодія досягається приобробці нескінченної послідовності не пов'язаних між собою і неконфліктуючих при доступі в пам'ять команд (тобто, коли результат будь-якоїоперації не залежить від дій, виконаних іншими командами). При цьомупередбачається, що всі операнди вибираються з внутрікрістальной кеш-пам'ятіданих, а команди - з кеш-пам'яті команд. Зрозуміло, подібна ситуаціясуто гіпотетична, і на практиці жодна система не в змозі працюватискільки-небудь тривалий час з пікової продуктивністю, хоча і моженаближатися до цієї величини. Наприклад, на текстах Linpack при великихрозмірностях оброблюваних матриць (1000 (1000) майже всі комп'ютеридемонструють продуктивність в діапазоні від 0,8 до 0,95 від піковогозначення.
Пікова продуктивність є єдиною по-справжньому об'єктивнимпараметром (для його визначення необхідно знати декілька параметрівпроцесора) і абсолютно не залежить від типу виконуваної програми. Мовайде про тактовою частотою процесора, яка для переважної більшостісучасних комп'ютерів визначає темп формування результатів на виходіарифметичного конвеєра, і числі арифметичних конвеєрів. Не важковстановити відповідність між одиницями вимірювання тактової частоти іпродуктивності процесора. Очевидно, що 1 Мгц відповідає 1 MFLOPSабо 1 MIPS-пікової продуктивності одного конвеєра, залежно відтого, який тип операцій розглядається - з плаваючою або з фіксованоюточкою. Не слід забувати також про розрядності оброблюваних чисел, щобуникнути не коректного порівняння продуктивності для 32 - 64 - розряднихданих. Але в будь-якому випадку правила обчислення пікової продуктивності,при всій їхній зовнішній простоті, можуть виявитися надзвичайно корисними приобговоренні переваг комп'ютерів. Щоб визначити піковупродуктивність машин, треба помножити тактову частоту на кількістьпаралельно виконуваних операцій. Наприклад, арифметичне пристрій
Pentium кожен такт може формувати один результат полноразрядной (64біт) операцій з плаваючою крапкою або два результати 32-х розряднихцілочисельних операцій. Отже, для Pentium/90 піковапродуктивність дорівнює 90 MFLOPS при виконанні обчислень з плаваючоюточкою і 180 MIPS при цілочисельний 32-х розрядної обробці.
Особливо зручно використовувати показники граничного швидкодії дляпорівняння можливостей процесорів у першому наближенні. Американськіфахівці з контролю за експортом озброєнь при оцінці рівняпродуктивності комп'ютерів використовують показник основної теоретичноїпродуктивності (CTP), що вимірюється в Mtops - мільйонах теоретичнихоперацій в секунду. CTP залежить тільки від апаратних засобів комп'ютера
(тактової частоти, набору функціональних пристроїв, пропускної здатностіі набору внутрішніх шин, довжини розрядної сітки і так далі). p>
Реальна продуктивність
При виконанні реальних прикладних програм ефективна (реальна)продуктивність мікропроцесора може вельми істотно (до декількохразів) бути менше пікової. Це пояснюється тим, що сучаснівисокопродуктивні мікропроцесори мають досить складну архітектуру
(суперконвейерная і суперскалярна обробка, багаторівнева система пам'ятіі так далі). Характеристики їх функціонування на рівні внутрішніхпристроїв істотно залежать від програми і оброблюваних даних. Томуне можливо з необхідною точністю оцінити продуктивність тільки напідставі тактової частоти їх роботи, числа що витрачаються на виконанняоднієї команди тактів процесора і числа пристроїв обробки.
Для оцінки продуктивності різних обчислювальних засобів у світовійпрактиці найбільшого поширення набуло використання наборівхарактерних для тієї чи іншої області застосування обчислювальної?? й технікизавдань. Час виконання однією кожної з задач набору становить основу длярозрахунку індексу продуктивності досліджуваної обчислювальної установки.
Індекс продуктивності є відносною оцінкою, що несеінформацію про те, на скільки швидше або повільніше досліджуванаобчислювальна установка виконує подібні завдання у порівнянні з деякоюшироко поширеною ЕОМ (останній часто називають базовою абоеталонної). p>
Способи вимірювання реальної продуктивності
При оцінці продуктивності на тестах доводиться вирішувати три проблеми,пов'язані з аналізом результатів контрольного тестуванняпродуктивності: p>
. відділення показників, яким можна довіряти беззастережно, від тих, які повинні сприйматися з відомою часткою настороженості p>
(проблема достовірності оцінок); p>
. вибір конторольно-оціночних тестів, найбільш точно характеризують продуктивність при обробці типових завдань користувача p>
(проблема адекватності оцінок); p>
. правильне тлумачення результатів тестування продуктивності, особливо якщо вони виражені в досить екзотичних одиницях типу p>
MWIPS, Drystoones/s і т.д. (проблема інтерпретації).
Першу групу тестів вимірювання продуктивності складають тестивиробників, що розробляються компаніями-виробниками комп'ютерів для
«Внутрішнього» застосування - оцінюючи якості власних продуктів. Головнаособливість цих тестів полягає в тому, що вони орієнтовані напорівняння обмеженого безлічі однотипних комп'ютерів, часто відносятьсядо одного сімейства.
Користувальницькі тести створюються великими компаніями, що спеціалізуютьсяна впровадження комп'ютерних технологій, або спільними зусиллями групкористувачів, об'єднаних схожістю вирішуваних завдань. Ці коштипризначені для вибору комп'ютерів, ПЗ, найбільш підходящі підпевні прикладні задачі. У принципі такий підхід дозволяє отриматинайбільш точні оцінки продуктивності для конкретного класудодатків, хоча і пов'язане зі значними зусиллями користувачів постворення тестових програм та проведення випробувань комп'ютерів.
Сьогодні найбільш поширеними є набори тестів компанії SPEC
(Standard Performance Evolution Corporation) - SPEC (89, 92,95), які ібудуть розглядатися нижче
Пакет тестових програм SPEC 89 включає в себе два тестових набору - Cint
89, що складається з чотирьох програм з цілочисельний обробкою, і Cfp 89,що поєднує шість програм із значним обсягом інформації над числамиз плаваючою точкою подвійної точності.
Всі десять модулів представляють собою досить складні програми намовах C і FORTRAN з широким спектром виконуваних завдань - від оптимізаціїматриць булевої алгебри до моделювання заміщення атомів у квантової хімії. p>
Пакет тестових програм SPEC 92
SPEC 92 складається з наборів тестових пакетів Сint92 і Cfp92.
Пакет оціночних програм Cint92 призначений для оцінки продуктивностімікропроцесорів при виконанні цілочисельних операцій, переважно укомерційної області застосування. До його складу входять 6 еталонних тестів,написаних на мові Сі і представляють собою завдання з теорії мереж,інтерпретатор мови Lisp, завдання логічного проектування, Unix - утилітуупаковки тестового файлу розміром 1 Мбайт, який 20 разів піддаєтьсястиснення, операції з рядками і стовпчиками електронної таблиці і компілятормови Сі.
Пакет оціночних програм Cfp92 призначений для оцінки продуктивностімікропроцесорів на операціях з плаваючою точкою, переважно утехнічної та наукової областях.
До його складу входять 14 різних прикладних програм, два з якихнаписані на мовах Сі і 12 - на мові Фортран. У пакет входять програмисхемного проектування, проектування термодинаміки ядерного реактораметодом Monte-Carlo, задачі квантової хімії та фізики, рішення рівняння
Максвелла, перетворення координат, трасування оптичних променів, завданняробототехніки та нейромереж, моделювання людського вуха, рішеннярівняння Нав'є-Стокса для визначення параметра міжгалактичного газу,сім бібліотечних функцій обробки матриць (множення, звернення і т.д.) іряд інших.
Пакет SPEC 92 має одне нововведення. Мова йде про характеристикимультипрограмній обробки SPECrate, що формуються в рамках методу однієїнавантаження. Суть останнього полягає в наступному: тестовий "комп'ютервиконує завдання, що складається з безлічі копій однієї програми, апоказником продуктивності багатопроцесорної обробки служитькількість копій, завершених за певний період часу. Дляотримання оцінки SPECrate використовуються ті ж програми, що і для розрахункупоказників SPECint92 і SPECfp92. Різниця тільки в тому, що тестовий модульреалізується як кілька копій, що утворюють одне завдання, а результатомвимірювань є нормоване загальний час виконання всіх копій завдання.
Подібної процедурі піддається кожна з 20 тестових програм, щодозволяє отримати шість приватних оцінок SPECratio, для програмцілочисельний обробки, і 14 - для програм обробки дійсних чисел.
Таким чином, SPECrateint 92 і SPECratfp 92 оцінюють середню швидкістьвиконання завдання в багатопроцесорних режимі роботи системи. Крім того,ці показники дозволяють отримати уявлення про можливості компілятораз організації паралельного мультизадачності коду, а також операційноїсистеми - по ефективному динамічному розподілу ресурсів системи (уЗокрема, процесорів) між виконуваними паралельними програмами. Церобить оцінки SPECrateint 92 і SPECratfp 92 особливо представницькими для
SMP-систем колективного користування, що працюють у пакетному режимі.
Зведені відомості про програми, що входять до SPEC 89 і SPEC 92, наведенінижче в таблиці. p>
Перелік програм наборів SPEC89, SPEC92.
| Програма | Тест, мову, тип |
| | Даних |
| Моделювання ПЛМ (PLA) | 89 +92, С, ФТ |
| Lisp - інтерпретатор | 89 +92, С, ФТ |
| Формування логічних таблиць істинності | 89 +92, С, ФТ |
| Unix - утиліта упаковки тестового файлу розміром 1Мбайт, | 92, С, ФТ |
| який 20 разів піддається стиску | |
| Операція з рядками і стовпчиками електронної таблиці | 92, С, ФТ |
| Компілятор GNU, трансляція 19 програм на С в | 89 +92, С, ФТ |
| оптимізований код асемблера | |
| Моделювання аналогових ланцюгів з високою інтенсивністю | 89 +92, Фортран, |
| обмінів з пам'яттю | Пт, ДВ |
| Моделювання термодинаміки ядерного реактора методом | 89 +92, Фортран, |
| Монте-Карло; містить велику кількість розгалужень і коротких | Пт, ДВ |
| циклів | |
| Завдання квантової хімії для системи з 500 атомів | 92, Фортран, ПТ, |
| | ДВ |
| Версія тесту Mdijdp2 для одинарної точності | 92, Фортран, ПТ, |
| | ВІД |
| Рішення рівнянь Максвелла | 92, Фортран, ПТ, |
| | ДВ |
| Генерація сітки при моделюванні процесів обтікання; | 89 +92, Фортран, |
| програма орієнтована на тестування паралельних | Пт, ДВ |
| систем | |
| Моделювання управління рухом робота з використанням | 92, С, Пт |
| відеосистеми | |
| Рішення сітковій завдання shallow - water для сітки 256х256 | 92, Фортран, Пт |
| Завдання квантової фізики обчислення маси елементарних | 92, Фортран, ПТ, |
| часток з використанням методу Монте-Карло; добре | ДВ |
| векторізуется і орієнтована на тестування паралельних | |
| систем | |
| Рішення рівняння Нав'є-Стокса для визначення параметра | 92, Фортран, ПТ, |
| міжгалактичного газу; програма добре векторізуется і | ДВ |
| орієнтована на тестування паралельних систем | |
| Сім бібліотечних функцій обробки матриць (множення, | 89 +92, Фортран, |
| звернення і т.д.) | Пт, ДВ |
| Моделювання процесу заміщення атомів на серіях Гауса; | 89 +92, Фортран, |
| програма погано распараллелівается і містить великий | Пт, ДВ |
| обсяг введення/виводу | |
| Синтетичний тест, що імітує різні алгоритми | 89, Фортран, ПТ, |
| множення матриць | ДВ |
| Моделювання вуха людини | 92, С, пт, ДВ | p>
Пакет тестових програм SPEC 95
Поява нового набору програм обумовлено розвитком мікропроцесорів
(підвищення продуктивності і збільшенням обсягу внутрікрістальнойпам'яті), вдосконалення компіляторів, прагнення врахувати вимогистандартів відкритих систем, атак же скоригованими після появи SPEC
92 уявленням про актуальність різних областей програми.
Сучасні процесори виконують рішення тестів SPEC 92 протягомінтервалів часу від однієї до кількох секунд, що вносить великіпохибки в вимірювання продуктивності. Обсяг коду програм і даних
SPEC 92 такий, що програми і дані можуть розміститися в кеш пам'ятіпроцесора. Це взагалі не дозволяє отримати більш-менш достовірніоцінки реальної продуктивності.
Індекси продуктивності в SPEC 95 даються по відношенню до еталонноїмашині SPARC-station 10/40 в конфігурації з кеш пам'яттю другого рівня.
Використовуються два тестових набору CINT 95 і CFP 95, що складаються з 8 і 10програм відповідно. p>
Таблиця 2. Перелік програм набору CINT p>
| Область застосування | Специфікація завдання |
| Моделювання | Моделювання кристала Motorola 88100 |
| Компіляція | Компіляція програми на Сі та компіляція |
| | Оптимізованого коду для процесора SPARC |
| Штучний інтелект | Гра Го - гра сама проти себе |
| Компресія | Компресія текстового файлу розміром 16 Мбайт |
| Інтерпретація | Lisp-інтерпретатор |
| Обробка зображень | Стиснення графічних об'єктів (JPEG) с |
| | Різними параметрами |
| Маніпулювання текстовими | Shell-інтерпретатор |
| рядками | |
| Бази даних | Побудова таблиць і маніпулювання з ними | p>
При випробуваннях комп'ютерів формуються: p>
. індекси продуктивності SPEC int 95, SPEC fp 95 і SPEC int base p>
95, SPEC fp base 95, для фіксованої та плаваючої крапки в оптимізованому режимі компіляції і без оптимізації відповідно. p>
. індекси пропускної здатності SPEC int rate 95, SPEC fp rate 95 і p>
SPEC int rate base 95, SPEC fp rate base 95 для оцінки багатозадачних режимів і SMP архітектур при оптимізованому режимі компіляції і без оптимізації відповідно.
Усі інтегральні індекси продуктивності формуються як середнєгеометричне індексів за окремими тестами.
Корпорація SPEC не дає ніяких рекомендацій щодо встановлення відповідностіміж значеннями індексів SPEC 92 і ИЗУС 95. p>
Табліца3. Перелік набору програм набору CFP p>
| Область застосування | Специфікація завдання |
| Гідродинаміка, | Генерація двовимірної координатної сітки в |
| геометричний аспект | довільної області |
| Прогноз погоди | Моделювання водної поверхні методом кінцевих |
| | Елементів (речова арифметика з одинарною |
| | Точністю) |
| Квантова фізика | Обчислення мас елементарних часток методом |
| | Монте-Карло |
| Астрофізика | Розрахунок межгалактіческіх газів по рівнянь |
| | Нав'є-Стокса |
| Електромагнетизм | Розрахунок тривимірного поля потенціалів |
| Гідродинаміка | Рішення системи рівнянь в приватних похідних |
| Моделювання | Моделювання турбулентності в кубічному обсязі |
| Прогноз погоди | Обчислення статистики температур, повітряних потоків |
| | І рівнів забруднення |
| Квантова хімія | Породження потоку електронів |
| Електромагнетизм | Рішення рівняння Максвелла | p>
§ 3. Недоліки існуючих систем p>
1) При вирішенні різних завдань прикладними програмами ресурси мікропроцесора витрачаються часто неекономно. У результаті цього процесору доводиться здійснювати величезну кількість команд, які могли бути замінені кількома. Вина лежить не на програмних продуктах, а на тих системах програмування, за допомогою яких ці програми створювалися.
Рішення: створювати засоби для створення програм максимально ефективним способом, звертаючи увагу на використовувані процесором адресації і розміщення даних.
2) На швидкодію так само впливає і те, яке напруга подається на мікропроцесор. При великій напрузі відбувається нагрівання процесора. У результаті цього основа, на якій розміщуються транзистори, починає грітися і, відповідно він виходить з ладу.
Рішення: відстань між транзисторами необхідно зменшити. На сьогоднішній день мінімальну технологію виготовлення мають процесори
Intel Pentium 4, і вона становить 0,13 мкм (для порівняння: процесор AMD з архітектурою К7, тактовою частотою 1000МГц має 0,18 мкм. Звичайна температура роботи ~ 65 ° С). Відстань між транзисторами зменшується, відповідно опір, а звідси вони вимагають менше енергоспоживання - температура нагріву помітно знижується.
3) Гальмує роботу процесора і те, що витрачається багато часу на обмін даними, які знаходяться в постійній пам'яті. І навіть при невеликих обчисленнях мікропроцесор звертається до ОЗП за даними, а міг би зберігати дані у власних регістрах
Рішення: по можливості, часто використовувані дані бажано розміщувати або в регістрах процесора, або у швидкій кеш-пам'яті. Багато компілятори не піклуються про те, щоб розмістити дані так, щоб спостерігалася максимальна швидкість роботи програми.
4) Так само швидкість обчислення зменшується через те, що процесору доводиться зупиняти свою роботу і виконувати апаратні переривання.
Реакція процесора на переривання: а) приходить переривання; б) процесор припиняє виконувати основне завдання; в) відбувається збереження положення, на якому зупинилася основна програма; г) виконується переривання; д) процесор відновлює запомненное стан; е) продовжує виконання основного завдання.
Треба зауважити, що процесор витрачає багато часу на збереження свого поточного стану та відновлення.
Рішення: по час обчислення великих обсягів інформації можна заборонити деякі апаратні переривання нижче IRQ 0 (таймер). Заборонені переривання не будуть зупиняти процесор, відповідно швидкість виконання зросте. Недоліки: можуть загубитися деякі дані, наприклад символи, які вводяться з клавіатури - переривання IRQ 1. P>
§ 4. Алгоритм рішення p>
Розглянемо недолік № 3. Затрачіваніе часу на обмін даними. P>
§ 5. Опис алгоритму p>
Блок 1-7. Підрахунок часу на виконання вибраної операції на мовівисокого рівня. У даному випадку застосовується мова Pascal. P>
Блок 1. Початок програми.
Блок 2. Вводяться два числа з клавіатури.
Блок 3. Вибираємо операцію із запропонованих на екрані. Якщо це операціядодавання, то виконується алгоритм підсумовування ряду, якщо множення, товиконується обчислення факторіалу.
Ввели N, то рад складання виглядає наступним чином:
1 +2 +3 + ... + N = СУМА
Множення
1 * 2 * 3 * ... * N = ТВІР < br> Блок 4. Включаємо таймер і запам'ятовуємо початкове значення.
Блок 5. Виконуємо обрану операцію на Pascal.
Блок 6. Вимикаємо таймер і запам'ятовуємо лічену значення
Блок 7. Знаходимо різницю між початковим значенням часу і кінцевим p>
Блок 8-14. Підрахунок часу на виконання вибраної операції на мовінизького рівня. Застосовується мова Assembler. P>
Блок 8. Змінні, які ми вводимо з клавіатури, знаходяться в пам'яті.
Щоб почати обчислення ми повинні з пам'яті (ОЗУ) помістити значення врегістри процесора. Це ми робимо до включення таймера, щоб час,витрачений на цю дію, не ввійшло в результат.
Блок 9. Прочитуємо початкове значення часу.
Блок 10. Виконуємо операцію
Блок 11. Прочитуємо кінцевий час
Блок 12. Знаходимо час виконання операції - це різниця між кінцевимзначенням і початковим.
Блок 13. Виводимо значення часів на екран і робимо висновки.
Блок 14. Вихід з програми. P>
§ 6. Лістинг програми p>
Program Test_of_CPU_for_Zuev;uses crt;var vid: byte; t1, t2, NN: word; time1, time2: real; p>
Procedure Add_Pascal (N: word); (Складання на Pascal)var i: word; p>
Summa: integer;
Begin p>
summa: = 0;t1: = 0;t2: = 0; asm in al, 40h mov bl, al in al, 40h (Прочитуємо початкове значення тиків від таймера) mov bh, al mov t1, bx end; p>
for i: = 1 to N dosumma: = summa + i; asm in al, 40h mov bl, al (Кінцеве кількість тиків) in al, 40h mov bh, al mov t2, bx end;
Time1: = t1/(65536 * 18.2);time2: = t2/(65536 * 18.2);writeln ( 'Час виконання складання на Pascal:', (time2-time1): 6:12);end; p>
Procedure Add_Asm (N: word);var i: word; p>
Proisv: integer;
Begin p>
t1: = 0;t2: = 0; asm in al, 40h mov ah, al in al, 40h xchg ah, al mov t1, ax p>
xor ax, ax xor dx, dx p>
@ @ q: (Виконуємо складання) inc dx add ax, dx loop @ @ q p>
in al, 40h mov cl, al in al, 40h mov ch, al mov t2, cx p>
end;
Time1: = t1/(65536 * 18.2);time2: = t2/(65536 * 18.2);writeln ( 'Час виконання складання на Assembler:', (time2-time1): 6:12);end; p>
{======================================== =========================}< br>Procedure Mul_Pascal (N: word); (Множення на Assembler)var i: word; p>
Proisv: integer;
Begint1: = 0; t2: = 0; asm in al, 40h mov bl, al in al, 40h (Прочитуємо початкове значення тиків від таймера) mov bh, al mov t1, bx end; p>
for i : = 1 to N doproisv: = proisv * i; asm in al, 40h mov bl, al (Кінцеве кількість тиків) in al, 40h mov bh, al mov t2, bx end;
Time1: = t1/(65536 * 18.2);time2: = t2/(65536 * 18.2);writeln ( 'Час виконання множення на Pascal:', (time2-time1): 6:12);end; p>
Procedure Mul_Asm (N: word);var Proisv: integer; p>
Begint1: = 0;t2: = 0; asm in al, 40h mov bl, al in al, 40h (Прочитуємо початкове значення тиків від таймера) mov bh, al mov t1, bx p>
xor ax, ax xor bx, bx
@ @ q: (Виконуємо складання) inc dx mul dx loop @ @ q p>
in al, 40h mov bl, al in al, 40h (Кінцеве кількість тиків) mov bh, al mov t2, bx end; p>
Time1: = t1/(65536 * 18.2);time2: = t2/(65536 * 18.2);writeln ( 'Час виконання множення на Assembler:', (time2-time1): 6:12);end; p>
Beginclrscr;
(Визначаємо вид операції)textcolor (11);
Writeln ( 'Зробіть вибір операції та натисніть клавішу ENTER :');< br>Writeln ('1) Складання ');
Writeln ('2) Множення ');
Readln (vid);textcolor (10); p>
Case vid of p>
1: begin write ( 'Введіть суму ряду, не більше 2-х байт (65535: )'); p> < p> Readln (NN); p>
Writeln; textcolor (3); p>
Add_Pascal (NN); p>
Add_Asm (NN); end; p >
2: begin write ( 'Введіть твір ряду, не більше 2-х байт (65535:
)'); p>
Readln (NN); p>
Writeln; textcolor (3); p>
Mul_Pascal (NN); p>
Mul_Asm (NN); end; end; p>
readln;
End. P>
§ 7. Опис програми p>
Програма написана на алгоритмічній мові Pascal. Складається з двохблоків. У кожному блоці дві процедури: перший - це виконання операції намовою Pascal, а другий - виконання цієї ж операції на мові Assembler.
Перший блок.
Складається з двох процедур, які виконують складання на мові Pascal і
Assembler. Проводиться підсумовування ряду чисел. Вимірювання часувідбувається за допомогою мікросхеми таймера 8253. Спочатку зчитуємо початковечисло тиків, потім виконуємо операцію і знову зчитуємо число з мікросхеми.
Різниця, розділена на твір 65535 * 18,2 і буде часом виконанняоперації. asm in al, 40h mov bl, al in al, 40h (Прочитуємо початкове значення тиків від таймера) mov bh, al mov t1, bx end; p>
(Виконуємо операцію) p>
asm in al, 40h mov bl, al in al, 40h (Кінцеве кількість тиків) mov bh, al mov t2, bx end; p>
Time = t2 - t1/(65536 * 18.2); (ЧАС ВИКОНАННЯ ОПЕРАЦІЇ) p>
Другий блок.
Аналогічний першого блоку, з тією лише різницею, що тут виконуєтьсяінша операція - обчислення факторіалу. p>
§ 8. Експериментальні дані p>
Для проведення експерименту вводяться числа:
10; 100; 1000; 5000; 10000; 15000; 20000; 25000; 30000; 35000; 50000; 60000; 65000; p >
Дані вводяться як для підсумовування ряду, так і для обчисленняфакторіалу. p>
§ 9. Отримані результати p>
Всі обчислення виконувалися на мікропроцесорі AMD Athlon 1000 MHz
Середня температура процесора при обчисленні 64 ° С p>
Обчислення суми ряду.
| ДОДАВАННЯ |
| Введене знвченіе | Pascal | Assembler |
| 10 | 1,34143 E-05 | 1,84447 E-05 |
| 100 | 1,67679 E-05 | 1,34143 E-05 |
| 1000 | 4,19198 E-05 | 2,17983 E-05 |
| 5000 | 0,000157618 | 5,19805 E-05 |
| 10000 | 0,000301822 | 9,22234 E-05 |
| 15000 | 0,000444349 | 0,000132466 |
| 20000 | 0,00059023 | 0,000171033 |
| 25000 | 0,000734434 | 0,000211276 |
| 30000 | 0,000875284 | 0,000249842 |
| 35000 | 0,001021165 | 0,000290085 |
| 50000 | 0,001483959 | 0,000410814 |
| 60000 | 0,001742185 | 0,00050136 |
| 65000 | 0,001884712 | 0,000528189 | p>
p>
Обчислення факторіалу. P>
| Множення |
| Введене знвченіе | Pascal | Assembler |
| 10 | 1,50911 E-05 | 1,34143 E-05 |
| 100 | 2,85054 E-05 | 1,34143 E-05 |
| 1000 | 0,000159295 | 2,51519 E-05 |
| 5000 | 0,000749525 | 7,2102 E-05 |
| 10000 | 0,001482282 | 0,000132466 |
| 15000 | 0,002216716 | 0,000191154 |
| 20000 | 0,002994747 | 0,000251519 |
| 25000 | 0,003687261 | 0,000338712 |
| 30000 | 0,00443511 | 0,000368894 |
| 35000 | 0,005157806 | 0,000429258 |
| 50000 | 0,007403028 | 0,000608675 |
| 60000 | 0,00887525 | 0,000727727 |
| 65000 | 0,009579501 | 0,000786415 | p>
p>
§ 10. Висновки p>
Починаючи аналізувати отримані результати, хотілося б навести графікзростання продуктивності при збільшенні числа ітерацій. p>
p>
Проаналізуємо для кожного з двох випадків:
Додавання.
При застосуванні мови Assembler зростання продуктивності спостерігається від 10ітерацій до 25000 і далі прагнути до постійного значенням рівному ~ 3,7.
Навіть таке збільшення продуктивності помітно позначиться на роботідеякі