ДонНТУ Портал магістрів
Магістр ДонНТУ Сорока Тарас Євгенович

Сорока Тарас Євгенович

Факультет комп`ютерних наук i технологiй

Кафедра прикладної математики й iнформатики

Спецiальнiсть "Програмне забезпечення автоматизованих систем"

   Тема магiстерської роботи:

Аналiз ефективностi iєрархiчної пам`ятi

Науковий керiвник: професор, д.т.н. Фельдман Лев Петрович

Резюме Бiографiя Реферат

Реферат на тему магiстерської роботи

   Вступ
   Актуальність роботи
   Наукова новизна
   Цілі й задачі роботи
   Огляд досліджень по темі
   Ієрархія запам'ятовуючих пристроїв
   Характеристики запам'ятовуючих пристроїв
   Загальна характеристика кеш-пам'яті
   Когерентність кеш-пам'яті в мультипроцесорній системі
   Методи оцінки продуктивності обчислювальних систем
   Заплановані практичні результати
   Перелік посилань

    Вступ

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

Тактова частота сучасних процесорів перевищує 3 Ггц, повсюди використовуються багатоядерні процесори, які мають 2, 4, 6 і навіть 8 ядер. У той же час для настільних комп'ютерів оперативна пам'ять вже сягає 4 Гб, випереджаючи за розміром жорсткі диски десятирічної давнини. Основна проблема в подальшому розвитку комп'ютерних систем (як ПК, так і суперкомп'ютерів) полягає в великій відмінності між швидкодією двох основнх компонентів системи: процесора і пам'яті. Зі збільшенням продуктивності процесора цей розрив лише збільшується, тому фактично чим вище тактова частота процесора, тим більше часу він працює вхолосту, або простоює. У той же час розробники і виробники оперативної пам'яті орієнтуються не на збільшення швидкодії доступу до пам'яті, а на подальше збільшення її обсягу.

    Актуальність роботи

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

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

    Наукова новизна

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

    Цілі й задачі роботи

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

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

    Огляд досліджень по темі

Аналізом продуктивності обчислювальних систем і їх оптимізацією займаються проф. кафедри ПМіІ Фельдман Л.П. і доц. кафедри ПМіІ Михайлова Т.В. У напрямку проектування і розробки паралельних і розподілених моделюючих середовищ працюють проф. кафедри КІ Святний В.А. і доц. кафедри ПМіІ Ладиженський Ю.В. Більшість робіт співробітників ДонНТУ по даній темі мають переважно теоретичний характер і виходять в кінцевому рахунку на комп'ютерне моделювання. Повний цикл досліджень в ДонНТУ (і в інших університетах нашої країни) по цій темі відсутній, тому що на даний момент ця область майже не має практичного виходу: в Україні відсутні будь-якої організації, які займаються промисловим або хоча-б експериментальним призводства апаратного забезпечення для паралельних обчислювальних систем.

В то же время в Западной Европе и, в особенности, в США данное направление развивается гораздо быстрее и продуктивнее по причине наличия спроса на такие исследования со стороны производителей процессоров и другого аппаратного обеспечения таких как Intel, AMD и IBM. Большое число работ по данной теме имеют американские исследователи Heinrich M., Jacob B. и Archibald J., занимающиеся проектированием систем памяти и анализом параллельных вычислительных систем уже более 20 лет.


    Ієрархія запам'ятовуючих пристроїв

При створенні системи пам'яті постійно доводиться вирішувати завдання забезпечення необхідної ємності і високої швидкодії за прийнятну ціну. Найбільш поширеним підходом тут є побудова системи пам'яті ЕОМ за ієрархічним принципом [1]. Ієрархічна пам'ять складається з декількох запам'ятовуючих пристроїв, що відрізняються ємністю, швидкістю доступу і вартістю: регістри, кеш-пам'ять, основна пам'ять, жорсткий диск, змінні носії (див. рис. 1). Тут у міру просування зверху донизу змінюються 3 параметри: збільшується ємність, збільшується час доступу, зменшується вартість на біт.


Ієрархія запам'ятовуючих пристроїв
Рисунок 1 – Ієрархія запам'ятовуючих пристроїв

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

Кеш-пам'ять, у свою чергу, також можна розділити на кілька рівнів: L1, L2 (1-й і 2-й рівні є у більшості сучасних процесорів), L3 (3-й рівень - тільки для високопродуктивних процесорів). кеш 4-го рівня (L4) використовується тільки в суперкомп'ютерах. Для рівнів кеш-пам'яті діють ті ж закони, що і для інших ЗУ: перший рівень - найшвидший та має найнижчу ємність, кеш 3-го рівня - найбільший і найповільніший (але швидше ніж ОП). Порівняння часу доступу до ЗУ наведено в табл. 1.


Таблиця 1. Час доступу до ЗУ
Запам'ятовуючій пристрій Приблизний час доступу, нс
регістри ЦП <10нс
кеш-пам'ять L1 10-15нс
кеш-пам'ять L2 15-30нс
кеш-пам'ять L3 40-50нс
основна пам'ять >100нс

При цьому ємність регістрів процесора – близько 100 байт, кеша першого рівня – до 128 Кбайт, кеша 2-го рівня – 128Кбайт – 1-12 Мбайт, а кеша 3-го рівня – до 24 Мбайт, обсяг оперативної пам'яті – кілька гігабайт.

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

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

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

    Характеристики запам'ятовуючих пристроїв

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

Характеристика ЗУ за місцем їх розташування була наведена вище: самі швидкі - ЗУ, що знаходяться на одному кристалі з процесором (кеш 1-го рівня), найповільніші - зовнішні (оптичні диски і стрічки).

Ємність ЗУ характеризується числом байтів, яке воно може зберігати, діапазони ємності різних ЗУ були наведені вище. Одиниця пересилання для всіх ЗУ внутрішнього рівня звичайно дорівнює довжині слова (16, 32, або 64 біта), для оперативної пам'яті – це ширина шини даних (може досягати 128 біт – більше ніж регістр процесора).

При оцінці швидкодії ЗУ необхідно враховувати вживаний метод доступу до даних. Розрізняють 4 основних типи доступу [1]:

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

Швидкодія запам'ятовуючого пристрою - один з найважливіших його показників. Для кількісної оцінки швидкодії зазвичай використовуються 3 параметри [1]:

  • час доступу (T д ) - це інтервал часу від моменту надходження до процесора адреси (до якої потрібно зробити доступ) до моменту, коли дані заносяться в пам'ять або стають доступними;
  • тривалість циклу пам'яті або період обігу (T ц ) - це мінімальний час між двома послідовними зверненнями до пам'яті, як правило, воно трохи більше часу доступу;
  • швидкість передачі - це швидкість переміщення одного блоку даних, для пам'яті з довільним доступом вона дорівнює 1 / T ц . Для інших типів пам'яті швидкість передачі визначається співвідношенням:
    TN = TA + N/R
    де T N - середній час зчитування або запису N бітів, T A - середній час доступу до пристрою , R - швидкість пересилання в бітах в секунду. Найменшою швидкість передачі буде у пам'яті з послідовним доступом через занадто великий показчик N.

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

    Загальна характеристика кеш-пам'яті

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

У кожний момент часу в кеші знаходиться певна частина інформації з ОП, при цьому дані в процесор надходять тільки через кеш. Цими даними можуть бути адреси, команди або дані; відповідно до цього кеш може бути адресним, програмним чи кешем даних [3].

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

Найважливішою характеристикою ефективності кешу є коефіцієнт кеш-влучень ( h ). Знаючи цей коефіцієнт, а також час доступу до кешу (c) і основної пам'яті (m) можна визначити середній час доступу для системи кеш-ОП:

Tд = c+(1-h)m

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

Tд = cl1+(1-hl1)cl2+(1-hl2)m

 
де c li - час доступу до кешу i-го рівня, h li - коефіцієнт влучень для кешу i-го рівня (i = {1,2}).

При проектуванні кеш пам'яті її прагнуть зробити такою, щоб коефіцієнт h був якомога ближче до 1.

При взаимодействии с кэш-памятью основная память представляется состоящей из определенного количества блоков фиксированной длины. кэш- память состоит из блоков такого же размера [1], но этих блоков намного меньше, чем в ОП (блоки кэш-памяти принято называть строками). При считывании слова из какого-либо места ОП, блок ОП, содержащий это слово переписывается в одну из строк кэша. Поскольку число строк кэша меньше числа блоков ОП, отдельная строка кэша не может быть постоянно выделена одному блоку ОП. По этой причине каждой строке кэша соответствует тег (признак), указывающий, копия какого из блоков ОП хранится в данный момент в строке кэша. В качестве тега обычно используется часть адреса ОП.

На эффективность применения кэш-памяти в иерархической системе памяти влияет целый ряд моментов. К наиболее существенным из них можно отнести: емкость кэш-памяти, размер строки, способ отображения основной памяти на кэш-память, алгоритм замещения информации в заполненной кэш-памяти, алгоритм согласования содержимого основной и кэш-памяти, число уровней кэш-памяти.

Емкость кэш-памяти, может служить одним из оптимизируемых параметров модели всей системы иерархической памяти. Эта емкость должна быть достаточно малой, чтобы ее стоимостные показатели были близки к показателям ОП, с другой стороны – достаточно большой, чтобы среднее время обращения к памяти характеризовалось временем доступа к кэшу (коэффициент попаданий был максимально близким к 1:h→1).

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

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

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

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

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

Для вирішення першої проблеми (коли процесор виконує операцію запису) у системах з кеш-пам'яттю передбачені методи оновлення основної пам'яті, які можна розбити на дві великі групи: метод наскрізного запису і метод зворотнього запису [1].

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

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

    Когерентність кеш-пам'яті в мультипроцесорній системі

На рис. 1 як приклад показано стан двопроцесорної системи зі спільною пам'яттю і кешами першого рівня для кожного процесора до і після зміни поділюваної змінної. При зміні значення змінної Х процесором CPU2, значення її або відразу записується тільки в кеш процесора СPU2, а в загальну пам'ять при витісненні з кеша Cache2 (така стратегія називається зворотним записом), або відразу ж і в кеш процесора СPU2, і в загальну пам'ять (така стратегія називається наскрізним записом). В обох випадках значення поділюваної змінної в кеші процесора СPU1 (Cache1) виявляється неправильним, що і веде до неузгодженості вмісту кешів.

Проблема когерентності кеш-пам'яті (MP Gif Animator, 148 KB)
Рисунок 1 – Проблема когерентності кеш-пам'яті

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

Існує кілька способів вирішення проблеми когерентності на апаратному рівні [5]:

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

Під протоколом когерентності кеш-пам'яті розуміють будь-який апаратний механізм подолання проблеми когерентності. Перший протокол когерентності кеш-пам'яті ("write-once") був описаний Гудманом в 1983 р. в [6]. Першою системною роботою з аналізу і порівняння декількох протоколів когерентності кешів є [7]. Серед більш пізніх робіт з верифікації, моделювання та аналізу протоколів когерентності можна відзначити [8,9].

Існує декілька класів протоколів когерентності:

  • протоколи на основі довідника (directory based). Інформація про стан блоку фізичної пам'яті міститься тільки в одному місці – довіднику (фізично довідник може бути розподілений по вузлах системи);
  • протоколи спостереження (snooping). Кожен кеш, який містить копію даних деякої частини фізичної пам'яті, має також відповідну копію службової інформації (біти стану). Контролери кеш-пам'ятей обмінюються між собою службовою інформацією про стан блоку даних.

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

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

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

    Методи оцінки продуктивності обчислювальних систем

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

У загальному випадку можна виділити два способи моделювання:

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

Якщо потрібен точний всебічний аналіз обчислювальної системи доцільно застосовувати обидва ці способи, причому розглядати поведінку системи з різних сторін. В якості засобів аналітичного моделювання доцільно використовувати два класи моделей: моделі на основі ланцюгів Маркова і моделі на основі мереж СМО [10].

    Заплановані практичні результати

У результаті моделювання передбачається отримати:

  • залежність коефіцієнта влучень кеш-пам'яті від її структури і характеристик: числа рівнів, розміру блока, розміру кеша, алгоритмів заміщення, відображення і витіснення;
  • завантаження ядер мультипроцесора і всієї системи в залежності від протоколу когерентності кеш-пам'яті і числа процесорів;
  • навантаження на системну шину в залежності від протоколу когерентності кеш-пам'яті і числа процесорів.

    Перелік посилань

  1. Орлов С.А., Цилькер Б.Я. Организация ЭВМ и систем: учебник для вузов. 2-е изд. – CПб.: Питер, 2011. – 668 с.
  2. Таненбаум Э. Архитектура компьютера. 5-е изд. – CПб.: Питер, 2007. – 844 с.
  3. Пом А., Агравал О. Быстродействующие системы памяти: Пер. с англ. – М.: Мир, 1987. – 264 с.
  4. Tomasevic M., Milutinovic V. “The cache coherence problem in shared–memory multiprocessors”, IEEE Computer Society Press, LosAlamos, CA. 1993.
  5. Сорока Т.Е., Фельдман Л.П., Михайлова Т.В. «Обзор протоколов когерентности кэш-памяти» // Iнформацiйнi управляючi системи та комп`ютерний монiторiнг / Матерiали II всеукраїнської конференцiї студентiв, аспiрантiв та молодих вчених – 11-13 квiтня 2011р., Донецьк, ДонНТУ – 2011, с. 168-172
  6. Goodman J. R., “Using cache memory to reduce processor–memory traffic”, Proceeding of the 10th International Symposium on Computer Architecture, 1983.
  7. Archibald J., Baer J., “Cache coherence protocols: evaluation using a multiprocessor simulation model”. ACM Trans. Comput. Syst., 1986.
  8. Emerson E. A., Kahlon V. “Rapid parameterized model checking of snoopy cache coherence protocol”, Proceedings of 9th International Workshop on frontiers of combining systems, 2002.
  9. Рудометов В. В., Семенов В. С., «Анализ когерентности кэш-памятей для повышения эффективности тестирования подсистемы памяти». //Сборник научно-технических трудов «Высокопроизводительные вычислительные системы и микропроцессоры», – М.: ИМВС РАН №4, 2003.
  10. Фельдман Л.П., Дедищев В.О. Математическое обеспечение САПР: Моделирование вычислительных и управляющих систем. – К.: УМК ВО, 1992. – 256 с.
  11. Гуров В. В. Архитектура микропроцессоров. – [Электроний ресурс]. – Режим доступу: http://www.intuit.ru/department/hardware/microarch.
  12. Крис Касперски. «Подсистема кэш-памяти, как она есть». [Электроний ресурс]. – Режим доступу: http://www.insidepro.com/kk/008/008r.shtml.

При написанні цього реферату магістерська робота ще не завершена. Остаточне завершення – 1 грудня 2011 р . Повний текст роботи та матеріали по темі можуть бути отримані у автора або його керівника після зазначеної дати.

Резюме Бiографiя Реферат