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

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

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

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

Специальность: «Программное обеспечение автоматизированных систем»

    Тема магистерской работы:

Анализ эффективности иерархической памяти

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

Резюме Биография Реферат Библиотека Ссылки Отчет о поиске Индивидуальный раздел

Реферат по теме магистерской работы

   Введение
   Актуальность работы
   Научная новизна
   Цели и задачи работы
   Обзор исследований по теме
   Иерархия запоминающих устройств
   Характеристики запоминающих устройств
   Общая характеристика кэш-памяти
   Когерентность кэш-памяти в мультипроцессорной системе
   Методы оценки производительности вычислительных систем
   Планируемые практические результаты
   Перечень ссылок

    Введение

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

Тактовая частота современных процессоров превышает 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
    где TN – среднее время считывания или записи N битов, TA – среднее время доступа к устройству, R – скорость пересылки в битах в секунду. Наименьшей скорость передачи будет естественно у памяти с последовательным доступом из-за слишком большого числа N.

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

    Общяя характеристика кэш-памяти

Скорость работы кэша на порядок выше, чем у ОП и лишь немногим уступает скорости работы процессора, поэтому удачная реализация кэша может намного повысить скорость доступа процессора к данным и, как следствие, выполнения программ.

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

Какие именно данные помещать в кэш – это первая задача при проектировании кэш-памяти. Ситуация, когда при последовательных обращениях к памяти в течение некоторого промежутка времени используется только небольшая ее часть, называется принципом локальности. Этот принцип составляет основу всех систем кэш-памяти. Идея состоит в том, что когда определенное слово вызывается из памяти, оно вместе с остальными словами помещается в кэш-память, что позволяет при очередном запросе быстро обращаться к следующим словам. Другая задача состоит в определении блока, который нужно вытеснить из кэша.

Самой важной характеристикой эффективности кэша является коэффициент кэш-попаданий (h). Зная этот коэффициент, а также время доступа к кэшу (с) и основной памяти (m) можно определить среднее время доступа для системы кэш-ОП:

Tд = c+(1-h)m

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

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

 
где cli – время доступа к кэшу i-го уровня, hli – коэффициент попаданий для кэша i-го уровня (i={1,2}).

При проектировании кэш памяти ее стремятся сделать такой, чтобы коэффициент h был как можно ближе к 1.

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

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

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

В большинстве современных систем используется многоуровневая кэш-память с небольшим и очень быстрым кэшем первого уровня, и медленными кэшами 2-го и 3-го уровня, но большими по объему. Это позволяет значительно увеличить быстродействие всей системы памяти (при ее удачной реализации), но значительно усложняет задачу проектирования такой системы: теперь нужно искать оптимальную емкость сразу нескольких кэшей, а вместе с этим еще и их число. В общем случае эта задача полностью не может быть разрешена, так как эффективности всей системы памяти зависит от характера решаемых задач.

Размер строки кэш-памяти может служить варьируемым параметром модели. Он также влияет на вероятность промахов. Чем больше емкость кэша, тем дальше будет максимальная полезная емкость строки, поэтому можно было бы порекомендовать подбирать этот параметр отдельно для кэша каждого уровня и увеличивать размер строки с увеличением емкости кэша. К сожалению, это довольно трудно реализовать аппаратно, поэтому размер строки обычно выбирают равным ширине шины данных, соединяющей кэш-память с ОП.

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

В процессе вычислений процессор не только считывает информацию, но и записывает новую, обновляя тем самым содержимое кэш-памяти. С другой стороны устройства ввода-вывода могут обмениваться информацией непосредственно с оперативной памятью, что может привести к несоответствию информации в строке КЭШе и соответствующем блоке ОП; это, в свою очередь, может привести к тому, что процессору будет выдана устаревшая информация из кэша без учета обновления блока ОП в ходе взаимодействия с периферийным устройством.

Для решения последней проблемы можно использовать два приема: можно либо каждый раз при обновлении какого либо блока ОП, проверять наличие его копии в КЭШе, и обновлять и ее, либо вообще организовать взаимодействие с основной памятью только через кэш-память.

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

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

Согласно методу обратной записи, слово заносится только в кэш-память. Если соответствующей строки в кэш-памяти нет, то нужный блок сначала пересылается из ОП, после чего запись все равно выполняется исключительно в кэш-память. При замещении строки ее необходимо предварительно переслать в соответствующее место основной памяти. Для метода обратной записи, в отличие от алгоритма сквозной записи, характерно то, что при каждом чтении из основной памяти осуществляются две пересылки между основной и кэш-памятью.

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

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

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

Согласно [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 г. Полный текст работы и материалы по теме могут быть получены у автора или его руководителя после указанной даты.

Резюме Биография Реферат Библиотека Ссылки Отчет о поиске Индивидуальный раздел