Допомога у написанні освітніх робіт...
Допоможемо швидко та з гарантією якості!

Тест на швидкодія микропроцессора

РефератДопомога в написанніДізнатися вартістьмоєї роботи

Перечень програм наборів SPEC89, SPEC92. |Програма |Тест, мову, тип — | |даних — |Моделювання ПЛМ (PLA) |89+92, З, ФТ — |Lisp — інтерпретатор |89+92, З, ФТ — |Формування логічних таблиць істинності |89+92, З, ФТ — |Unix — утиліта упаковки тестового файла розміром 1Мбайт, |92, З, ФТ — |який 20 раз піддається стиску — | |Операція зі рядками і стовпчиками електронної таблиці |92, З, ФТ — |Компілятор… Читати ще >

Тест на швидкодія микропроцессора (реферат, курсова, диплом, контрольна)

Министерство освіти РФ.

Череповецький державний университет.

Кафедра ПО ЭВМ.

Дисциплина:

«Організація ЕОМ і систем».

КУРСОВА РАБОТА.

Тема: «Тест: швидкодія микропроцессора».

Виконав студент: Лужинский Андрей.

Група: 1ПО-32.

Прийняв викладач: Зуєв А.Н.

Підпис викладача _______________.

Дата здачі _______________.

Череповец 2001.

| |Содержание.

§ 1. Завдання 3 § 2. Огляд існуючих систем 3 § 3. Недоліки існуючих систем 13 § 4. Алгоритм рішення 14 § 5. Опис алгоритму 16 § 6. Лістинг програми 16 § 7. Опис програми 20 § 8. Експериментальні дані 20 § 9. Отримані результати 21 § 10. Висновки 23 § 11. Список літератури 25.

§ 1. Задание.

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

§ 2. Огляд існуючих систем.

2.1.

Введение

.

Створення фірмою Intel першого мікропроцесора в 1971 року поклало початок епосі комп’ютеризації. «Завдяки микропроцессорам комп’ютери стали масовим загальнодоступним продуктом», — заявив Тед Гофф (Ted Hoff), одне із винахідників першого мікропроцесора. За трохи більш ніж 25 років процесори пройшли воістину гігантський шлях. Перший чіп Intel 4004 працював на частоті 750 Кгц, містив 2300 транзисторів і коштувала близько $ 200. Продуктивність його оцінювався у 60 тис. операцій на секунду. Сьогодні реальна продуктивність мікропроцесорів перевершила 1300 МГц. Порівняння приведених значень підтверджують оцінку успіхів мікропроцесорної індустрії, цю засновником головою ради директорів фірми Intel Гордоном Муром (Gordon Moor): «Якби автомобілебудування еволюціонувало зі швидкістю напівпровідникової промисловості, то сьогодні „Ролс-Ройс“ варта була б лише три долара, міг би проїхати півмільйона миль однією галоні бензину, і було б дешевше його викинути, ніж сплатити паркування». Таке інтенсивна розбудова технологій у суспільстві, де основним предметом праці стає інформація, є наслідком зростання попиту на основні знаряддя праці - комп’ютери. Сьогодні комп’ютеризація одна із головних напрямів науково-технічного прогресу. Кількість і якість вироблених у країні комп’ютерів, ступінь насиченості обчислювальної техніки найрізноманітніших галузей стає одним з основних критеріїв її економічного й військової потенціалу. У мікропроцесорах — найскладніших мікроелектронних пристроях — втілені найпередовіші досягнення інженерної думки. У разі властивої цієї галузі виробництва жорсткої конкуренції, та величезних капіталовкладень, випуск кожної нової моделі мікропроцесора — котрі чи інакше, пов’язані з черговим науковим, конструкторським, технологічним прорывом.

2.2. Мікропроцесор Pentium. Сьогодні мікропроцесори Pentium компанії Intel займають лідируючу позицію над ринком мікропроцесорів. Подивимося архітектуру цих процесорів. Сімейство мікропроцесорів Pentium (II, Ш, 4) включає у собі високопродуктивні процесори Intel, працівники тактових частотах від 60 до 2000 МГц. Процесор Pentium повністю програмно сумісний із попередніми мікропроцесорами Intel, і дозволяє застосовувати раніше розроблені програми На відміну від попереднього мікропроцесорів і системи команд х86, процесори сімейства Pentium мають також низку цілих технічних нововведень, до яких относятся:

. суперскалярная архитектура;

. роздільні кеш-пам'яті для команд і данных;

. пророцтво переходов;

. високопродуктивні операції з плаваючою точкой;

. вдосконалена 64-разрядная шина данных;

. кошти забезпечення цілісності данных;

. SL-технология із засобами управління энергопотреблением;

. підтримка многопроцессорности;

. моніторинг производительности;

. підтримка різних сторінок памяти.

Розглянемо ці нововведення більш подробно.

I. Суперскалярная архітектура Два конвеєра процесора можуть виконувати дві команди одночасно. Команди виконуються в розмірі 5 этапов:

1. предвыборка;

2. декодування 1;

3. декодування 2;

4. выполнение;

5. запис результатів; У цьому кілька команд можуть бути різними етапах виконання. Однак дві конвеєра є незалежними. При зупинці одного зупиняється і другой.

Роздільні кеш-пам'яті команд і данных.

Кожна кеш пам’ять процесора має розмір 8 Кбайт (для версій Pentium I) і 16 Кбайт (для версій Pentium II, MMX, III). Кеш пам’яті є частково асоціативними. Пошук необхідної інформації виконується в стандартних 32- байтовых рядках. Буфер трансляції адрес (TLB) перетворює осередки зовнішньої пам’яті в відповідний адресу даних в кеш памяти.

Пророцтво переходов.

Процесор Pentium — перший х86 сумісний мікропроцесор. Виконує твердження переходів, використовуючи буфер BTB (Branch Target Buffer) і двоє буфера попередньої вибірки. Алгоритм попередження переходів процесора Pentium як прогнозує вибір простих гілок, але підтримує і більше складне прогнозування. Це робиться з допомогою зберігання ЕВР у буфері BTB кількох адрес переходів. BTB зберігає до 256 результатів переходів, що дозволяє виконувати правильне пророцтво з імовірністю щонайменше 0,8.

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

2.3. Архітектурні особливості микропроцессоров.

Типи команд мікропроцесора. У результаті еволюційного розвитку архітектур процесорів у складі системи команд вводилися і закріплювалися складні команди, які, на думку розробників, відповідали вирішуваним завданням. Мірою цього відповідності найчастіше був обсяг двоичного коду програми. Команди бувають різних типів: «регістр, регистр (регистр»; «пам'ять, память (память»; «регистр (память» та інших. Складні команди модифікують вміст груп регістрів і осередків пам’яті, та їх реалізації при прийнятних витратах устаткування, зазвичай, застосовується мікропрограмування. Команди називаються скалярными, якщо вхідні операнды й одержують результати є числами (скалярами). Команди називаються векторными, якщо вхідні операнды і, можливо, результати є вектором (масивом) чисел, а перетворення даних масиву (вектора) використовується одна векторна команда. Саме поява векторних команд пов’язано з бажанням прискорити обробку масивів даних рахунок винятку витрати часу на вибірку і дешифрацию команд обробки, однакових всім компонент вхідних масивів. За збереження послідовних програм з метою прискорення обробки застосовуються суперскалярные процесори, у яких рахунок паралельної роботи функціональних пристроїв процесора щодо одного такті виробляється кілька скалярних результатов.

Структурний паралелізм мікропроцесорів. Підвищення продуктивності мікропроцесорів досягається рахунок збільшення тактовою частоти, вдосконалення паралельної і конвеєрної обробки даних, а як і зменшення часу доступу до пам’яті. Сучасні мікропроцесори містять десять оброблюваних пристроїв, кожна з яких надає собою конвеєр. Ефективна завантаження паралельно функціонуючих конвеєрів забезпечується або апаратурою процесора, або компілятором, на вхід якого надходять програми на послідовному мові програмування, або що з апаратурою і компілятором. У компіляторах використовується изощрённая техніка вилучення паралелізму з послідовних програм. Апаратура мікропроцесорів орієнтована на виділення простіших форм паралелізму, зокрема природного. Прагнення використовувати властивий більшості програм природний паралелізм обчислення цілочислових адресних висловів та власне обробки даних в форматі з плаваючою точкою призвело до появи рознесених структур (decoupled architecture). Умовно мікропроцесори з разнесённой архітектурою називаються, А — процесорами та Опроцесорами. Разнесённая архітектура дозволяє досягати при скалярной обробці продуктивності, властивій векторних процесорів, рахунок предвыборки даних із пам’яті і автоматичної развёртки кількох послідовних витків циклу в, А — процесорі. Проблеми розщеплення програми на підпрограми для, А — та Опроцесора вирішуються лише на рівні компілятора чи спеціальним блоком-расщепителем.

Структурні методи зменшення часу доступу до пам’яті. Удосконалення архітектури мікропроцесорів і механізму доступу до пам’яті неспроможна відбуватися без прийняття сукупності угод про структурі програм, тож оброблюваних даних. Це пов’язано з, наприклад, тим, що час доступу в основну пам’ять удесятеро і успішніше саме більше, ніж час виконання перетворення даних в регістрах процесора. Тому необхідно знаходити рішення з зменшенню часу доступу, які враховували цей факт. Ієрархічна структура пам’яті. Ідеальна пам’ять мають забезпечувати процесор командами те щоб б викликати простоїв процесора. У цьому пам’ять повинна мати велику ємність. За сучасних умов зменшення часу доступу досягається запровадженням багаторівневої ієрархії пам’яті. Час доступу залежить від обсягу й типу використовуваної пам’яті. Сучасна типова ієрархія пам’яті має таку структуру:

. регістри 64 — 256 слів згодом доступу 1 такт процессора;

. кеш 1 рівня — 8к слів згодом доступу 1 — 2 такта;

. кеш 2-го рівня — 256к слів згодом доступу 3 — 5 тактов;

. основна пам’ять — до запланованих 4 Гигаслов згодом доступу 12 — 55 тактів. Використовую крім основний пам’яті невелику й швидший буферну пам’ять, можна значно зменшити кількість інтерпретацій основний пам’яті, рахунок акумуляції фрагмента програмного коду у буферній пам’яті. Створення ієрархічної пам’яті під час, поки попередні блоки програм, тож даних між рівнем пам’яті під час поки попередні блоки обробляються мікропроцесором, дозволяє істотно скоротити простої процесора в очікуванні даних. У цьому ефект зменшення часу доступу до пам’яті буде тим більше коштів, що більше час обробки даних у буферній пам’яті по порівнянню згодом пересилки між буферної і основний пам’яттю. Це характеризується локальність оброблюваних даних, коли процесор багаторазово використовує одні й самі дані розробки деякого результату. У зв’язку з тим, що локально оброблювані дані можуть бути в динаміці обчислень, і обов’язково сконцентровано у області при статичному розміщенні у основний пам’яті, буферну пам’ять організують як асоціативну, у якій дані зберігають у поєднанні з їх адресою в основний пам’яті. Така буферна пам’ять отримав назву кеш-пам'ять. Кеш має сукупність рядків, кожна з яких складається з фіксованого кількості одиниць на пам’яті (байтів, слів з послідовними адресами Типовий розмір рядки: 16,64,256 байтів). Найчастіше використовуються три способу організації кеш-пам'яті, відмінні обсягом апаратури, необхідної їхнього реалізації. Це правда звана кеш-пам'ять з прямим відображенням (direct-mapped cache), частково асоціативна кеш-пам'ять (set-associative cache) і асоціативна кеш пам’ять (full associative cache). Розшарування пам’яті. Іншим структурним способом зменшення часу доступу до пам’яті служить розшарування пам’яті. У припущенні, що вибірка з пам’яті виконується по послідовним адресами можливо використання k блоків пам’яті розміщенням у блоці I, де I=0,…, k-1, слів з адресами n=I+krrp mod k, де p=0,1,…, M. І тут можливо k паралельних звернення до пам’ять за адресами, що належить різноманітних блоків. Тому вибірка команд програми крім команд, выбираемых як наслідок розгалуження, може бути прискорена застосуванням розшарування пам’яті. Аналогічно то, можливо прискорена обробка масивів даних Багаторівнева ієрархія і розшарування пам’яті можна використовувати совместно.

Способи виміру продуктивності Пікова (технічна) продуктивність є теоретичний максимум швидкодії комп’ютера при ідеальні умови. Цей максимум окреслюється число обчислювальних операцій, виконуваних в одиницю часу усіма наявними в процесорі обробними логикоарифметичними пристроями. Граничне швидкодія характеризується обробці безкінечною послідовності які пов’язані між собою — і не конфліктуючих при доступі на згадку про команд (тобто. коли результат будь-який операції залежить від дій, виконаних іншими командами). У цьому передбачається, що це операнды вибираються з внутрикристальной кеш-пам'яті даних, а команди — з кеш-пам'яті команд. Зрозуміло, така ситуація суто гіпотетична, на практиці жодна система має не може працювати хоч трохи тривалий час з пікової продуктивністю, хоч і може наближатися до цієї величини. Наприклад, на текстах 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 залежить від апаратних коштів комп’ютера (тактовою частоти, набору функціональних пристроїв, пропускну здатність і набору внутрішніх шин, довжини розрядної сітки й дуже далее).

Реальна продуктивність За виконання реальних прикладних програм ефективна (реальна) продуктивність мікропроцесора може відчутно (за кілька раз) менше пікової. Це тим, що високопродуктивні мікропроцесори мають дуже складну архітектуру (суперконвейерная і суперскалярная обробка, багаторівнева система пам’яті тощо). Характеристики функціонування лише на рівні внутрішніх пристроїв істотно залежить від програми розвитку й оброблюваних даних. Тому неможливо із необхідною точністю оцінити продуктивність лише з підставі тактовою частоти його роботи, числа витрачених виконання однієї команди тактів процесора і кількості пристроїв обробки. Для оцінки продуктивності різних обчислювальних засобів у світової практиці найбільшого поширення одержало використання наборів притаманних тій чи іншій області застосування обчислювальної техніки завдань. Час виконання однієї кожної із завдань набору лежить в основі для розрахунку індексу продуктивності досліджуваної обчислювальної установки. Індекс продуктивності є відносної оцінкою, несучою інформацію у тому, наскільки швидше чи повільніше досліджувана обчислювальна установка виконує такі завдання проти деякою панівною ЕОМ (останню часто називають базової чи эталонной).

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

. відділення показників, яких можна довіряти беззастережно, від, які мають сприйматися з часткою настороженности.

(проблема достовірності оценок);

. вибір конторольно-оценочных тестів, найточніше характеризуючих продуктивність при обробці типових завдань пользователя.

(проблема адекватності оценок);

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

MWIPS, Drystoones/s тощо. (проблема інтерпретації). Першу групу тестів виміру продуктивності становлять тести виробників, розроблювані компаниями-изготовителями комп’ютерів для «внутрішнього» застосування — оцінюючи якості власних продуктів. Головна особливість цих тестів у тому, що вони орієнтовані порівняння обмеженого безлічі однотипних комп’ютерів, часто стосовних одного сімейству. Користувальні тести створюються великими компаніями, що спеціалізуються впровадження комп’ютерних технологій, чи спільні зусилля груп користувачів, об'єднаних подібністю розв’язуваних завдань. Ці цифри призначені для вибору комп’ютерів, і ПО, найбільш підходящі під певні прикладні завдання. Загалом, такий підхід дає змогу отримати найточніші оцінки продуктивності конкретної класу додатків, хоч і сопряжён зі значними зусиллями користувачів по створенню тестових програм, тож проведенню випробувань комп’ютерів. Сьогодні найпоширенішими є набори тестів компанії SPEC (Standard Performance Evolution Corporation) — SPEC (89, 92,95), що й розглядатимуться нижче Пакет тестових програм SPEC 89 включає у собі два тестових набору — Cint 89, що з чотирьох програм з целочисленной обробкою, і Cfp 89, який би шість програм з великим обсягом інформації над числами з плаваючою точкою подвійний точності. Усі десять модулів є досить складні програми на мовами З і FORTRAN із широкою спектром розв’язуваних завдань — від оптимізації матриць булевой алгебри до моделювання заміщення атомів в квантової химии.

Пакет тестових програм SPEC 92 SPEC 92 складається з наборів тестових пакетів Сint92 і Cfp92. Пакет оціночних програм Cint92 призначений з метою оцінки продуктивності мікропроцесорів і під час цілочислових операцій, переважно у комерційної області застосування. У його складу входять 6 еталонних тестів, написаних мовою Сі і що становлять завдання з теорії мереж, інтерпретатор мови Lisp, завдання логічного проектування, Unix — утиліту упаковки тестового файла розміром 1 Мбайт, який 20 раз піддається стиску, операції з рядками і стовпчиками електронної таблиці і компілятор мови Сі. Пакет оціночних програм Cfp92 призначений з оцінки продуктивності мікропроцесорів на операції з плаваючою точкою, переважно у технічною відсталістю та наукової областях. У його складу входять 14 різних прикладних програм, дві у тому числі написані мовами Сі та дванадцяти — мовою Фортран. До пакета входять програми схемного проектування, проектування термодинаміки ядерного реактора методом Monte-Carlo, завдання квантової хімії і фізики, рішення рівняння Максвелла, перетворення координат, трасування оптичних променів, завдання робототехніки і нейромереж, моделювання людського вуха, рішення рівняння Навье-Стокса визначення параметра межгалактического газу, сім бібліотечних функцій обробки матриць (множення, звернення української й т.д.) і низку інших. Пакет SPEC 92 має одну нововведення. Ідеться про характеристиках мультипрограммной обробки SPECrate, формованих у межах методу однієї навантаження. Суть останнього ось у чому: тестований комп’ютер виконує завдання, що складається з безлічі копій однієї програми, а показником продуктивності многопроцессорной обробки служить кількість копій, завершених за певний інтервал часу. Для отримання оцінки SPECrate використовуються самі програми, що у розрахунку показників SPECint92 і SPECfp92. Різниця в тому, що тестовий модуль реалізується як дещо копій, їхнім виокремленням одне завдання, а результатом вимірів є нормоване загальне час виконання всіх копій завдання. Подібній процедурі піддається кожна гілка 20 тестових програм, що дозволяє їм отримати шість приватних оцінок SPECratio, для програм целочисленной обробки, і 14 — для програм обробки речовинних чисел. Отже, SPECrateint 92 і SPECratfp 92 оцінюють середню швидкість виконання завдання у многопроцессорном режимі роботи системи. З іншого боку, ці показники дозволяють скласти уявлення можливостях компілятора з організації паралельного мультизадачного коду, і навіть операційній системи — з ефективного динамічному розподілу ресурсів системи (в частковості, процесорів) між виконуваними паралельними програмами. Це робить оцінки SPECrateint 92 і SPECratfp 92 особливо представницькими для SMP-систем колективного користування, що працюють у пакетному режимі. Зведені інформацію про програмах, які входять у SPEC 89 і SPEC 92, наведено нижчий за таблице.

Перечень програм наборів 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, З, ПТ, ДВ |.

Пакет тестових програм SPEC 95 Поява нового набору програм зумовлено розвитком мікропроцесорів (підвищення продуктивності та прийдешнім збільшенням обсягу внутрикристальной пам’яті), вдосконалення компіляторів, прагнення врахувати вимоги стандартів відкритих систем, атак ж скоригованим після появи SPEC 92 поданням про актуальність різноманітних галузей докладання. Сучасні процесори виконують рішення тестів SPEC 92 протягом інтервалів часу від однієї за кілька секунд, що вносить великі похибки в виміру продуктивності. Обсяг коду програм, тож даних SPEC 92 такий, що програми розвитку й дані можуть розміститися в кеш пам’яті процесора. Це загалом Демшевського не дозволяє отримати скільки-небудь достовірні оцінки реальної продуктивності. Індекси продуктивності в SPEC 95 даються стосовно еталонною машині SPARC-station 10/40 в конфігурації з кеш пам’яттю другого рівня. Використовуються два тестових набору CINT 95 і CFP 95, які з 8 і десяти програм соответственно.

Таблиця 2. Перелік програм набору CINT.

|Область докладання |Специфікація завдання | |Моделювання |Моделювання кристала Motorola 88 100 | |Компіляція |Компіляція програми на Сі і компіляція | | |оптимизированного коду для процесора SPARC | |Штучний інтелект |Гра Го — гра сама проти себе | |Компресія |Компресія текстового файла розміром 16 Мбайт| |Інтерпретація |Lisp-интерпретатор | |Обробка зображень |Стиснення графічних объектов (JPEG) з | | |різними параметрами | |Маніпулювання текстовими |Shell-интерпретатор | |рядками | | |Бази даних |Побудова таблиць і маніпулювання із нею |.

При випробуваннях комп’ютерів формируются:

. індекси продуктивності SPEC int 95, SPEC fp 95 і SPEC int base.

95, SPEC fp base 95, для фіксованою і плаваючою точки в оптимизированном режимі компіляції і оптимізації соответственно.

. індекси пропускну здатність SPEC int rate 95, SPEC fp rate 95 и.

SPEC int rate base 95, SPEC fp rate base 95 з оцінки багатозадачних режимів і SMP архітектур при оптимизированном режимі компіляції і оптимізації відповідно. Усі інтегральні індекси продуктивності формуються як середнє геометричне індексів щодо окремих тестів. Корпорація SPEC не дає ніяких рекомендацій по встановлення відповідності між значеннями індексів SPEC 92 і ЫЗУС 95.

Таблица3. Перелік набору програм набору CFP.

|Область докладання |Специфікація завдання | |Гідродинаміка, |Генерація двумерной координатної сітки в | |геометричний аспект |довільній області | |Пророцтво погоди |Моделювання водної поверхні методом кінцевих | | |елементів (речовинна арифметика з одинарної | | |точністю) | |Квантова фізика |Обчислення мас елементарних частинок методом | | |Монте-Карло | |Астрофізика |Розрахунок межгалактических газів по рівнянням | | |Навье-Стокса | |Электромагнетизм |Розрахунок тривимірного поля потенціалів | |Гідродинаміка |Рішення системи рівнянь у приватних похідних | |Моделювання |Моделювання турбулентності в кубічному обсязі | |Пророцтво погоди |Обчислення статистики температур, повітряних потоків | | |і рівнів забруднення | |Квантова хімія |Породження потоку електронів | |Электромагнетизм |Рішення рівняння Максвелла |.

§ 3. Недоліки існуючих систем.

1) За позитивного рішення різних завдань прикладними програмами ресурси мікропроцесора витрачаються найчастіше неекономно. Внаслідок цього процесору доводиться здійснювати дуже багато команд, які можуть бути замінені кількома. Провина лежить не так на програмних продуктах, але в тих системах програмування, з допомогою яких ці програми створювалися. Рішення: створювати кошти на створення програм максимально ефективним засобом, повідомивши їм про використовувані процесором адресації і розміщення даних. 2) На швидкодія як і впливає і те, яке напруга подається на мікропроцесор. При великому напрузі відбувається нагрівання процесора. Внаслідок цього основа, де розміщуються транзистори, починає грітися і він виходить із ладу. Рішення: відстань між транзисторами необхідно зменшити. Сьогодні мінімальну технологію виготовлення мають процесори Intel Pentium 4, і її становить 0,13 мкм (порівнювати: процесор AMD з архітектурою К7, тактовою частотою 1000Мгц має 0,18 мкм. Звичайна температура роботи ~ 65°С). Відстань між транзисторами зменшується, відповідно опір, а звідси вони вимагають менше енергоспоживання — температура нагріву помітно знижується. 3) Гальмує роботу процесора і те, що витрачається чимало часу на обмін даними, що у постійної пам’яті. І навіть у невеликих обчисленнях мікропроцесор звертається до ОЗУ за даними, а міг би дані зберігати у своїх регістрах Рішення: наскільки можна, часто використовувані дані бажано розміщувати або у регістрах процесора, або у швидкої кеш-пам'яті. Багато компілятори не переймаються тим, щоб розмістити дані те щоб спостерігалася максимальна швидкість роботи програми. 4) Також швидкість обчислення зменшується тому, що процесору доводиться зупиняти діяти і виконувати апаратні переривання. Реакція процесора на переривання: а) приходить переривання; б) процесор припиняє виконувати основне завдання; в) відбувається збереження становища, у якому зупинилася основна програма; р) виконується переривання; буд) процесор відновлює запомненное стан; е) продовжує виконання основної мети. Слід зазначити, що процесор витрачає чимало часу зберегти свого поточного гніву й відновлення. Рішення: під час обчислення великих обсягів інформації можна заборонити деякі апаратні переривання нижче IRQ 0 (таймер). Заборонені переривання ні зупиняти процесор, відповідно швидкість виконання зросте. Недоліки: можуть загубитися деякі дані, наприклад символи, що з клавіатури — переривання IRQ 1.

§ 4. Алгоритм решения.

Розглянемо недолік № 3. Затрачивание часу на обмін данными.

§ 5. Опис алгоритма.

Блок 1−7. Підрахунок часу виконання обраної операції у мові високого рівня. У разі застосовується мову Pascal.

Блок 1. Початок програми. Блок 2. Вводяться два числа з клавіатури. Блок 3. Вибираємо операцію із запропонованих на екрані. Якщо це операція складання, то виконується алгоритм підсумовування низки, якщо множення, то виконується обчислення факториала. Ввели N, то радий складання виглядає так: 1+2+3+…+N=СУММА Множення 1*2*3*…*N=ПРОИЗВЕДЕНИЕ Блок 4. Вмикаємо таймер і запам’ятовуємо початкова значення. Блок 5. Виконуємо обрану операцію на Pascal. Блок 6. Виключаємо таймер і запам’ятовуємо лічене значення Блок 7. Знаходимо відмінність між початковим значенням часу й конечным.

Блок 8−14. Підрахунок часу виконання обраної операції у мові низького рівня. Застосовується мову Assembler.

Блок 8. Змінні, які ми вводимо з клавіатури, перебувають у пам’яті. Щоб розпочати обчислення ми повинні з пам’яті (ОЗУ) помістити значення регістри процесора. Це робимо до включення таймера, щоб час, витрачене цього дію, не увійшло результат. Блок 9. Зчитуємо початкова значення часу. Блок 10. Виконуємо операцію Блок 11. Зчитуємо кінцеве час Блок 12. Знаходимо час здійснення операції - це відмінність між кінцевим значенням і початковим. Блок 13. Виводимо значення часів на екран і робимо висновки. Блок 14. Вихід із программы.

§ 6. Лістинг программы.

Program Test_of_CPU_for_Zuev; uses crt; var vid: byte; t1, t2,NN:word; time1, time2:real;

Procedure Add_Pascal (N:word); {Складання на Pascal} var i: word;

Summa:integer; Begin.

summa:=0; t1:=0; t2:=0; asm in al, 40h mov bl, al in al, 40h {Зчитуємо початкова значення тиків від таймера} mov bh, al mov t1, bx end;

for i:=1 to N do summa:=summa+i; asm in al, 40h mov bl, al {Кінцеве кількість тиків} in al, 40h mov bh, al mov t2, bx end; Time1:=t1/(65 536*18.2); time2:=t2/(65 536*18.2); writeln («Час виконання складання на Pascal: » ,(time2-time1):6:12); end;

Procedure Add_Asm (N:word); var i: word;

Proisv:integer; Begin.

t1:=0; t2:=0; asm in al, 40h mov ah, al in al, 40h xchg ah, al mov t1, ax.

xor ax, ax xor dx, dx.

@@q: {Виконуємо складання} inc dx add ax, dx loop @@q.

in al, 40h mov cl, al in al, 40h mov ch, al mov t2, cx.

end; Time1:=t1/(65 536*18.2); time2:=t2/(65 536*18.2); writeln («Час виконання складання на Assembler: » ,(time2-time1):6:12); end;

{=================================================================} Procedure Mul_Pascal (N:word); {Множення на Assembler} var i: word;

Proisv:integer; Begin t1:=0;t2:=0; asm in al, 40h mov bl, al in al, 40h {Зчитуємо початкова значення тиків від таймера} mov bh, al mov t1, bx end;

for i:=1 to N do proisv:=proisv*i; asm in al, 40h mov bl, al {Кінцеве кількість тиків} in al, 40h mov bh, al mov t2, bx end; Time1:=t1/(65 536*18.2); time2:=t2/(65 536*18.2); writeln («Час виконання множення на Pascal: » ,(time2-time1):6:12); end;

Procedure Mul_Asm (N:word); var Proisv: integer;

Begin t1:=0; t2:=0; asm in al, 40h mov bl, al in al, 40h {Зчитуємо початкова значення тиків від таймера} mov bh, al mov t1, bx.

xor ax, ax xor bx, bx.

@@q: {Виконуємо складання} inc dx mul dx loop @@q.

in al, 40h mov bl, al in al, 40h {Кінцеве кількість тиків} mov bh, al mov t2, bx end;

Time1:=t1/(65 536*18.2); time2:=t2/(65 536*18.2); writeln («Час виконання множення на Assembler: » ,(time2-time1):6:12); end;

Begin clrscr; {Визначаємо вид операції} textcolor (11); Writeln («Зробіть вибір операції, і натиснімо клавішу ENTER: »); Writeln («1) Складання »); Writeln («2) Множення »); Readln (vid); textcolor (10);

Case vid of.

1: begin write («Запровадьте суму низки, трохи більше 2-х байт (65 535:) »);

Readln (NN);

Writeln; textcolor (3);

Add_Pascal (NN);

Add_Asm (NN); end;

2: begin write («Запровадьте твір низки, трохи більше 2-х байт (65 535:) »);

Readln (NN);

Writeln; textcolor (3);

Mul_Pascal (NN);

Mul_Asm (NN); end; end;

readln; End.

§ 7. Опис программы.

Програма написана на алгоритмическом мові Pascal. Вона складається з двох блоків. У кожному блоці дві процедури: перша — це виконання операції у мові Pascal, а друга — виконання тієї ж операції у мові Assembler. Перший блок. Вона складається з двох процедур, які виконують складання мовою Pascal і Assembler. Виробляється підсумовування низки чисел. Вимірювання часу твориться з допомогою мікросхеми таймера 8253. Спочатку зчитуємо початкова число тиків, потім виконуємо операцію і знову зчитуємо число з мікросхеми. Різниця, розділена на твір 65 535*18,2 і буде часом виконання операції. asm in al, 40h mov bl, al in al, 40h {Зчитуємо початкова значення тиків від таймера} mov bh, al mov t1, bx end;

{Виконуємо операцию}.

asm in al, 40h mov bl, al in al, 40h {Кінцеве кількість тиків} mov bh, al mov t2, bx end;

Time = t2-t1/(65 536*18.2); {ЧАС ВИКОНАННЯ ОПЕРАЦИИ}.

Другий блок. Аналогічний першому блоку, з тією різницею, що саме виконується інша операція — обчислення факториала.

§ 8. Експериментальні данные.

Для експерименту вводяться числа: 10;100;1000;5000;10 000;15000;20 000;25000;30 000;35000;50 000;60000;65 000;

Дані вводяться як підсумовування низки, так обчислення факториала.

§ 9. Отримані результаты Все обчислення виконувалися на микропроцессоре AMD Athlon 1000 MHz Середня температура процесора при обчисленні 64 °C.

Обчислення суми низки. |СКЛАДАННЯ | |Запроваджене знвчение|Pascal |Assembler | |10 |1,34143E-05 |1,84447E-05 | |100 |1,67679E-05 |1,34143E-05 | |1000 |4,19198E-05 |2,17983E-05 | |5000 |0,157 618 |5,19805E-05 | |10 000 |0,301 822 |9,22234E-05 | |15 000 |0,444 349 |0,132 466 | |20 000 |0,59 023 |0,171 033 | |25 000 |0,734 434 |0,211 276 | |30 000 |0,875 284 |0,249 842 | |35 000 |0,1 021 165 |0,290 085 | |50 000 |0,1 483 959 |0,410 814 | |60 000 |0,1 742 185 |0,50 136 | |65 000 |0,1 884 712 |0,528 189 |.

[pic].

Обчислення факториала.

|УМНОЖЕНИЕ | |Запроваджене знвчение |Pascal |Assembler | |10 |1,50911E-05 |1,34143E-05 | |100 |2,85054E-05 |1,34143E-05 | |1000 |0,159 295 |2,51519E-05 | |5000 |0,749 525 |7,2102E-05 | |10 000 |0,1 482 282 |0,132 466 | |15 000 |0,2 216 716 |0,191 154 | |20 000 |0,2 994 747 |0,251 519 | |25 000 |0,3 687 261 |0,338 712 | |30 000 |0,443 511 |0,368 894 | |35 000 |0,5 157 806 |0,429 258 | |50 000 |0,7 403 028 |0,608 675 | |60 000 |0,887 525 |0,727 727 | |65 000 |0,9 579 501 |0,786 415 |.

[pic].

§ 10. Выводы.

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

[pic].

Проаналізуємо кожного з двох випадків: Складання. При застосуванні мови Assembler зростання продуктивності спостерігається від 10 ітерацій до 25 000 і далі йти до постійному значенням рівному ~3,7. Навіть таке зростання продуктивності помітно позначиться роботі деяких додатків, використовують великі обчислення. Множення. З множенням справи трохи інакше: продуктивність різко збільшується (від 1 до 10,3) за зміни числа ітерацій від 10 до 5000 і далі вирівнюється, прагнучи постійному значенням. Можна зауважити, що навіть за невеликий обсяг обчислення спостерігається колосальний зростання продуктивності. Порівняно з складанням, продуктивність набагато вище, хоча час виконання операцій окремо має несуттєве відмінність, але за виконання цих операцій на циклі лідируюче становище займає умножение.

При тих даних ми можемо сміливо робити висновків, що компілятор мови Pascal (і багатьох інших мов таки програмування) витрачає ресурси мікропроцесора неекономно, витрачаючи чимало часу різні «зайві» дії, які, як ми помітили, до помітному зниження производительности.

Проанализируем порядок здійснення операції мовою Pascal, щоб знайти так звані «зайві» дії. Запроваджуються значення й вміщено у оперативної пам’яті комп’ютера. Далі ми повинні виділити пам’ять, також у ОЗУ, для перемінної, у якій накопичуватися результат (нашого випадку — сума низки, або значення факториала). Потім за виконанні операції ми мають бути наші вхідні значення переписати на відповідні регістри, виконати операцію й повернути значення знову на пам’ять. Далі возвращённое значення знадобиться для скоєння наступній ітерації - необхідно знову значення з ОЗУ переписати в регістри і операцію тощо. Як наслідок всіх таких операцій чимало часу витрачається на пересилку даних в регістри з метою відповідних операцій та повернення їх назад. У разі із мовою Assembler ми можемо самі розпорядитися тим, де зберігати проміжні дані, застосовуючи у своїй найшвидшу регістрову адресацію, тобто. переміщуючи значення вже з регістру на другий і витрачаючи час на марна збереження проміжних успіхів у ОЗУ. До оперативної пам’яті звернення відбувається лише двічі: вперше — зчитуємо значення з клавіатури на згадку про, та був з пам’яті в регістр; вдруге — повертаємо результати на згадку про задля її подальшого використання. Але цих операцій можна запобігти, зчитуючи запроваджувані значення, якщо це передбачено алгоритмом програми, просто у регістри, уникаючи влучення їх на згадку про. Введення можна здійснити аналогічно: дані з регістрів помістити безпосередньо в экран.

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

§ 11.

Список литературы

.

1) Юров У. «Assembler». Підручник — СПб.: Видавничий будинок «Пітер», 2001 г.

624с. 2) Юров У. «Assembler: спеціальний довідник» — СПб.: Видавничий дом.

«Пітер», 2001 р. 496с. 3) Корнєєв В.В., Кисельов А. В. «Сучасні мікропроцесори» — М. «Нолидж»,.

1998 р. — 240с. 4) Джордейн Р. «довідник програміста персональних комп’ютерів тип IBM.

PC, XT і AT: Пер. з анг. /Предисл. М. У. Гайского. — М.: «Фінанси і статистика», 1991 р. —544 з. 5) Пирогов У. Ю. «Assembler. Навчальний курс». — М.: «Нолидж», 2001 р. — 848с. ———————————- [pic].

Показати весь текст
Заповнити форму поточною роботою