Курсовая работа на тему: Кэш-память практическое задание: Дефрагментация диска по предмету: Операционные системы




НазваниеКурсовая работа на тему: Кэш-память практическое задание: Дефрагментация диска по предмету: Операционные системы
страница1/3
Волоха Алексей Владимирович
Дата конвертации03.10.2012
Размер0.58 Mb.
ТипКурсовая
  1   2   3
Государственный университет информационно – коммуникационных технологий

Курсовая работа
на тему:

Кэш-память
практическое задание: Дефрагментация диска
по предмету:

Операционные системы

выполнил:

Волоха Алексей Владимирович

группа ИБД-32б


Киев-2006

План
Теоретическая часть

Кэш-память

Введение 3

Причины внедрения кэш-памяти 4
Раздел 1 4

Что такое кэш-память? 4

Уровень за уровнем 5

Внутренний кэш 6

Смешанная и разделенная кэш-память 9

Статическая и динамическая память 10

TLB как разновидность кэш-памяти 11
Раздел 2 11

Организация кэш-памяти 11

Стратегия размещения 15

Отображение секторов ОП в кэш-памяти 15

Иерархическая модель кэш-памяти 16

Ассоциативность кэш-памяти 16

Размер строки и тега кэш-памяти 17

Типы подключения кэш-памяти 18

Сегментирование кэш-памяти и быстродействие жестких дисков 19

Увеличение производительности кэш-памяти 21

Зачем увеличивать кэш? 21

Выводы 23

Практическая часть

Дефрагментация диска 24
Литература 27

Введение
В качестве элементной базы основной памяти в большинстве ЭВМ используются микросхемы динамических ОЗУ, на порядок уступающие по быстродействию центральному процессору. В результате, процессор вынужден простаивать несколько периодов тактовой частоты, пока информация из ИМС памяти установится на шине данных ЭВМ. Если же ОП выполнить на быстрых микросхемах статической памяти, стоимость ЭВМ возрастет весьма существенно.

Экономически приемлемое решение этой проблемы возможно при использовании двухуровневой памяти, когда между основной памятью и процессором размещается небольшая, но быстродействующая буферная память или кэш-память. Вместе с основной памятью она входит в иерархическую структуру и ее действие эквивалентно быстрому доступу к основной памяти. Использование кэш-памяти позволяет избежать полного заполнения всей машины быстрой RAM памятью. Обычно программа использует память какой либо ограниченной области, храня нужную информацию в кэш-памяти, работа с которой позволяет процессору обходиться без всяких циклов ожидания. В больших универсальных ЭВМ, основная память которых имеет емкость порядка 1-32 Гбайт, обычно используется кэш-память емкость 1-12 Мбайт, т.е. емкость кэш-память составляет порядка 1/100-1/500 емкости основной памяти, а быстродействие в 5-10 раз выше быстродействия основной памяти. Выбор объема кэш-памяти – всегда компромисс между стоимостными показателями ( в сравнении с ОП ) и ее емкостью, которая должна быть достаточно большой, чтобы среднее время доступа в системе, состоящей из основной и кэш-памяти, определялось временем доступа к последней. Реальная эффективность использования кэш-памяти зависит от характера решаемых задач и невозможно определить заранее, какой объем ее будет действительно оптимальным.

Не всякая кэш-память равнозначна. Большое значение имеет тот факт, как много информации может содержать кэш-память. Чем больше кэш-память, тем больше информации может быть в ней размещено, а следовательно, тем больше вероятность, что нужный байт будет содержаться в этой быстрой памяти. Очевидно, что самый лучший вариант - это когда объём кэш-памяти соответствует объёму всей оперативной памяти. В этом случае вся остальная память становится не нужной. Крайне противоположная ситуация - 1 байт кэш-памяти - тоже не имеет практического значения, так как вероятность того, что нужная информация окажется в этом байте, стремится к нулю.

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

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

Причины внедрения кэш-памяти
Явная необходимость в кэш-памяти при проектировании массовых ЦП проявилась в начале 1990-х гг., когда тактовые частоты ЦП значительно превысили частоты системных шин, и, в частности, шины памяти. В настоящее время частоты серверных ЦП достигают почти 4 ГГц, а оперативной памяти, массово применяемой в серверах, - только 400 МГц (200 МГц с удвоением благодаря передаче по обоим фронтам сигнала). В этой ситуации при прямом обращении к памяти функциональные устройства ЦП значительную часть времени простаивают, ожидая доставки данных. В какой-то мере проблемы быстродействия оперативной памяти могут быть решены увеличением разрядности шины памяти, но даже в серверах младшего уровня нередко встречается 8-16 гнезд для модулей памяти, поэтому такое решение усложняет дизайн системной платы. Проложить же 256- или даже 512-бит шину к расположенной внутри кристалла ЦП кэш-памяти сравнительно несложно. Таким образом, эффективной альтернативы кэш-памяти в современных высокопроизводительных системах не существует.
Раздел 1
Что такое кэш-память?
Кэш-память — это высокоскоростная память произвольного доступа, используемая процессором компьютера для временного хранения информации. Она увеличивает производительность, поскольку хранит наиболее часто используемые данные и команды «ближе» к процессору, откуда их можно быстрее получить

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

Компьютеры хранят данные в аналогичной иерархии. Когда приложение начинает работать, данные и команды переносятся с медленного жесткого диска в оперативную память произвольного доступа (Dynamic Random Access Memory — DRAM), откуда процессор может быстро их получить. Оперативная память выполняет роль кэша для жесткого диска.
Для достаточно быстрых компьютеров (например, на основе intel-80386 с тактовой частотой более 25 мгц или intel-80486) необходимо обеспечить быстрый доступ к оперативной памяти, иначе микропроцессор будет простаивать и быстродействие компьютера уменьшится. Для этого такие компьютеры могут оснащаться кэш-памятью, т.е. "сверхоперативной" памятью относительно небольшого объема (обычно от 64 до 256 кбайт), в которой хранятся наиболее часто используемые участки оперативной памяти. Кэш-память располагается "между" микропроцессором и оперативной памятью, и при обращении микропроцессора к памяти сначала производится поиск нужных данных в кэш-памяти. Поскольку время доступа к кэш-памяти в несколько раз меньше, чем к обычной памяти, а в большинстве случаев необходимые микропроцессору данные содержаться в кэш-памяти, среднее время доступа к памяти уменьшается. Для компьютеров на основе intel-80386dx или 80486sx размер кэш-памяти в 64 кбайт является удовлетворительным, 128 кбайт - вполне достаточным. Компьютеры на основе intel-80486dx и dx2 обычно оснащаются кэш-памятью емкостью 256 кбайт.

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

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

Процессор Pentium III компании Intel имеет кэш-память первого уровня емкостью 32 Кбайт на микросхеме процессора и либо кэш-память второго уровня емкостью 256 Кбайт на микросхеме, либо кэш-память второго уровня емкостью 512 Кбайт, не интегрированную с процессором.

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

Когда процессор обнаруживает данные в одном из кэшей, это называют «попаданием»; неудачу называют «промахом». Каждый промах вызывает задержку, поскольку процессор будет пытаться обнаружить данные на другом, более медленном уровне. В хорошо спроектированных системах с программными алгоритмами, которые выполняют предварительную выборку данных до того, как они потребуются, процент «попаданий» может достигать 90.

Для процессоров старшего класса на получение информации из кэш-памяти первого уровня может уйти от одного до трех тактов, а процессор в это время ждет и ничего полезного не делает. Скорость доступа к данным из кэш-памяти второго уровня, размещаемой на процессорной плате, составляет от 6 до 12 циклов, а в случае с внешней кэш-памятью второго уровня — десятки или даже сотни циклов.

Кэш-память для серверов даже более важна, чем для настольных ПК, поскольку серверы поддерживают между процессором и памятью весьма высокий уровень трафика, генерируемого клиентскими транзакциями. В 1991 году Intel превратила ПК на базе процессора 80486 с тактовой частотой 50 МГц в сервер, добавив на процессорную плату кэш с тактовой частотой 50 МГц. Хотя шина, связывающая процессор и память, работала с частотой всего 25 МГц, такая кэш-память позволила многие программы во время работы полностью размещать в процессоре 486 с тактовой частотой 50 МГц.

Иерархическая организация памяти помогает компенсировать разрыв между скоростями процессоров, ежегодно увеличивающимися примерно на 50% в год, и скоростями доступа к DRAM, которые растут лишь на 5%. Как считает Джон Шен, профессор Университета Карнеги–Меллона, по мере усиления этого диссонанса производители аппаратного обеспечения добавят третий, а возможно и четвертый уровень кэш-памяти.

Действительно, уже в этом году Intel намерена представить кэш-память третьего уровня в своих 64-разрядных процессорах Itanium. Кэш емкостью 2 или 4 Мбайт будет связан с процессором специальной шиной, тактовая частота которой совпадает с частотой процессора.

IBM также разработала собственную кэш-память третьего уровня для 32- и 64-разрядных ПК-серверов Netfinity. По словам Тома Бредикича, директора по вопросам архитектуры и технологий Netfinity, сначала кэш будет размещаться на микросхеме контроллера памяти, выпуск которой начнется к концу следующего года.

Кэш-память третьего уровня корпорации IBM станет общесистемным кэшем, куда смогут обращаться от 4 до 16 процессоров сервера. С кэш-памятью третьего уровня Intel сможет работать только тот процессор, к которому она подключена, но представители IBM подчеркнули, что их кэш третьего уровня способен увеличить пропускную способность всей системы. Бредикич отметил, что новая кэш-память производства IBM также поможет реализовать компьютерные системы высокой готовности, необходимые для электронной коммерции, поскольку с ее помощью можно будет менять модули основной памяти и выполнять модернизацию, не прерывая работу системы.
Внутренний кэш
Внутренне кэширование обращений к памяти применяется в процессорах, начиная с 486-го. С кэшированием связаны новые функции процессоров, биты регистров и внешние сигналы.

Процессоры 486 и Pentium имеют внутренний кэш первого уровня, в Pentium Pro и Pentium II имеется и вторичный кэш. Процессоры могут иметь как единый кэш инструкций и данных, так и общий. Выделенный кэш инструкций обычно используется только для чтения. Для внутреннего кэша обычно используется наборно-ассоциативная архитектура.

Строки в кэш-памяти выделяются только при чтении, политика записи первых процессоров 486 – только Write Through (сквозная запись) – полностью программно-прозрачная. Более поздние модификации 486-го и все старшие процессоры позволяют переключаться на политику Write Back (обратная запись).

Работу кэша рассмотрим на примере четырехканального наборно-ассоциативного кэша процессора 486, его физическая структура приведена на рис.1. Кэш является несекторированным – каждый бит достоверности (Valid bit) относится к целой строке, так что стока не может являться “частично достоверной”.

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

Любой внутренний запрос процессора на обращение к памяти направляется на внутренний кэш. Теги четырех строк набора, который обслуживает данный адрес, сравниваются со старшими битами запрошенного физического адреса. Если адресуемая область представлена в строке кэш-памяти (случая попадания –cache hit), запрос на чтение обслуживается только кэш-памятью, не выходя на внешнюю шину. Запрос на запись модифицирует данную строку, и в зависимости от политики записи либо сразу выходит на внешнюю шину (при сквозной записи), либо несколько позже (при использовании алгоритма обратной записи).


4 Ru
. . .

. . .

. . .

. . .

. . .

Теги действительности
Диспетчер
Канал 4

Канал 1

Рис 1. Структура первичного кэша процессора 486
В случае промаха (Cache Miss) запрос на запись направляется только на внешнюю шину, а запрос на чтение обслуживается сложнее. Если этот зарос относится к кэшируемой области памяти, выполняется цикл заполнения целой строки кэша – все 16 байт (32 для Pentium) читаются из оперативной памяти и помещаются в одну из строк кэша, обслуживающего данный адрес. Если затребованные данные не укладываются в одной строке, заполняется и соседняя. Заполнение строки процессор старается выполнить самым быстрым способом – пакетным циклом с 32-битными передачами (64-битными для Pentium и старше).

Внутренний запрос процессора на данные удовлетворяется сразу, как только затребованные данные считываются из ОЗУ – заполнение строки до конца может происходить параллельно с обработкой полученных данных. Если в наборе, который обслуживает данный адрес памяти, имеется свободная строка (с нулевым битом достоверности), заполнена будет она и для нее установится бит достоверности. Если свободных строк в наборе нет, будет замещена строка, к которой дольше всех не было обращений. Выбор строки для замещения выполняется на основе анализа бит LRU (Least Recently Used) по алгоритму “псевдо-LRU”. Эти биты (по три на каждый из наборов) модифицируются при каждом обращении к строке данного набора (кэш-попадании или замещении).

Таким образом, выделение и замещение строк выполнятся только кэш-промахов чтения, при промахах записи заполнение строк не производится. Если затребованная область памяти присутствует в строке внутреннего кэша, то он обслужит этот запрос. Управлять кэшированием можно только на этапе заполнения строк; кроме того, существует возможность их аннулирования – объявления недостоверными и очистка всей кэш-памяти.

Очистка внутренней кэш-памяти при сквозной записи (обнуление бит достоверности всех строк) осуществляется внешним сигналом FLUSH# за один такт системной шины (и, конечно же, по сигналу RESET). Кроме того, имеются инструкции аннулирования INVD и WBINVD. Инструкция INVD аннулирует строки внутреннего кэша без выгрузки модифицированных строк, поэтому ее неосторожное использование при включенной политике обратной записи может привести к нарушению целостности данных в иерархической памяти. Инструкция WBINVD предварительно выгружает модифицированные строки в основную память (при сквозной записи ее действие совпадает с INVD). При обратной записи очистка кэша подразумевает и выгрузку всех модифицированных строк в основную память. Для этого, естественно, может потребоваться и значительное число тактов системной шины, необходимых для проведения всех операций записи.

Аннулирование строк выполняется внешними схемами – оно необходимо в системах, у которых в оперативную память запись может производить не только один процессор, а и другие контроллеры шины – процессор или периферийные контроллеры. В этом случае требуются специальные средства для поддержания согласованности данных во всех ступенях памяти – в первичной и вторичной кэш-памяти и динамического ОЗУ. Если внешний (по отношению к рассматриваемому процессору) контроллер выполняет запись в память, процессору должен быть подан сигнал AHOLD. По этому сигналу процессор немедленно отдает управление шиной адреса A[31:4], на которой внешним контроллером устанавливается адрес памяти, сопровождаемый стробом EADS#. Если адресованная память присутствует в первичном кэше, процессор аннулирует строку – сбрасывает бит достоверности этой строки (она освобождается). Аннулирование строки процессор выполняет в любом состоянии.

Управление заполнением кэша возможно и на аппаратном и на программном уровнях. Процессор позволяет кэшировать любую область физической памяти. Внешние схемы могут запрещать процессору кэшировать определенные области памяти установкой высокого уровня сигнала KEN# во время циклов доступа к этим областям памяти. Этот сигнал управляет только возможностью заполнения строк кэша из адресованной области памяти. Программно можно управлять кэшируемостью каждой страницы памяти – запрещать единичным значением бита PCD (Page Cache Disable) в таблице или каталоге страниц. Для процессоров с WB-кэшем бит PWT (Page Write Through) позволяет постранично управлять и алгоритмом записи. Общее программное управление кэшированием осуществляется посредством бит управляющего регистра CR0:CD (Cache Disable) и NW (No Write Through). Возможны следующие сочетания бит регистра:

  • CD=1, NW=1 – если после установки такого значения выполнить очистку кэша, кэш будет полностью отключен. Если же перед установкой этого сочетания бит кэша был заполнен, а очистка не производилась, кэш превращается в “замороженную” область статической памяти;

  • CD=1, CW=0 – заполнение кэша запрещено, но сквозная запись разрешена. Эффект аналогичен временному переводу сигнала KEN# в высокое (пассивное) состояние. Этот режим может использоваться для временного отключения кэша, после которого возможно его включение без очистки;

  • CD=0, NW=1 – запрещенная комбинация (вызывает отказ общей защиты);

  • CD=0, NW=0 – нормальный режим работы со сквозной записью.

Для полного запрета кэша необходимо установить CD=1 и NW=1, после чего выполнить очистку (Flush). Без очистки кэш будет обслуживать запросы в случае попаданий.

Процессоры 486 и старше имеют выходные сигналы PCD и PWT, управляющие работой вторичного (внешнего) кэша (они же управляют и внутренним кэшем). В циклах обращения к памяти, когда страничные преобразования не используются (например, при обращении к таблице каталогов страниц), источником сигналов являются биты PCD и PWT регистра CR3, при обращении к каталогу страниц – биты PCD и PWT из дескриптора соответствующего вхождения каталога, при обращении к самим данным – биты PCD и PWT из дескриптора страницы. Кроме того, оба этих сигнала могут принудительно устанавливаться общими битами управления кэшированием CD и NW регистра CRO.

Режим обратной записи может разрешаться только аппаратно сигналом WB/WT#, вырабатываемым внешними схемами.

В пространстве памяти РС имеются области, для которых кэширование принципиально недопустимо (например, разделяемая память адаптеров) или непригодна политика обратной записи. Кроме того, кэширование иногда полезно отключать при выполнении однократно исполняемых участков программы (например, инициализации) с тем, чтобы из кэша не вытиснялись более часто используемые фрагменты. Напомним, что запретить можно только заполнение строк, а обращение к памяти, уже представленной действительными строками кэша, все равно будет обслуживаться из кэша. Для полного запрета работы кэша строки должны быть аннулированы.

Программно при включенном режиме страничного преобразования кэшированием управляют биты атрибутов страниц (на уровне таблицы страниц и их каталога), биты PCD и PWT регистра CR3, и, наконец, глобально кэшированием управляют биты CD и NW регистра CR0.

Аппаратно (сигналом KEN#) внешние схемы могут управлять кэшированием (разрешать заполнение строк) для каждого конкретного адреса обращения к физической памяти.

  1   2   3

Похожие:

Курсовая работа на тему: Кэш-память практическое задание: Дефрагментация диска по предмету: Операционные системы iconВопросы к экзамену по предмету «Аппаратное обеспечение эвм»
Операционные системы класса Windows ? Интерфейс, история развития операционной системы ?
Курсовая работа на тему: Кэш-память практическое задание: Дефрагментация диска по предмету: Операционные системы iconКурсовая работа По предмету
На тему: «Межбанковские отношения на основе использования высоких технологий интербанковских телекоммуникаций»
Курсовая работа на тему: Кэш-память практическое задание: Дефрагментация диска по предмету: Операционные системы iconКурсовая работа     По предмету: «Бухгалтерский учёт и аудит в банках»
На тему: «Межбанковские отношения на основе  использования высоких технологий интербанковских  телекоммуникаций» 
Курсовая работа на тему: Кэш-память практическое задание: Дефрагментация диска по предмету: Операционные системы iconКурсовая работа по курсу "Организация эвм и систем"
Курсовая   работа  "Программно-аппаратное   конфигурирование   вычислительной   системы"  
Курсовая работа на тему: Кэш-память практическое задание: Дефрагментация диска по предмету: Операционные системы iconКонспект лекций  по дисциплине: «Операционные системы и среды»
«Системы  баз  данных»,  «Инструментальные  средства разработки аппаратно-программных систем», «Микропроцессоры и  микропроцессорные  системы»,  «Периферийные  устройства  ВТ».  Для ...
Курсовая работа на тему: Кэш-память практическое задание: Дефрагментация диска по предмету: Операционные системы iconКурсовая работа    тема:  Реализация интерфейсов мультиагентной системы  обучения программированию     Общие положения    Курсовая работа (проект) и лабораторный практикум предусматривают возможность 
Для  этого  после  титульного  листа  приводится  список  исполнителей  с  указанием 
Курсовая работа на тему: Кэш-память практическое задание: Дефрагментация диска по предмету: Операционные системы icon  Курсовая работа  по предмету «Стратегический менеджмент» 
Введение  3 
Курсовая работа на тему: Кэш-память практическое задание: Дефрагментация диска по предмету: Операционные системы icon  Курсовая работа  по предмету «Стратегический менеджмент» 
Введение  3 
Курсовая работа на тему: Кэш-память практическое задание: Дефрагментация диска по предмету: Операционные системы iconКурсовая работа   по предмету: История государства и права России 
Введение   3 
Курсовая работа на тему: Кэш-память практическое задание: Дефрагментация диска по предмету: Операционные системы icon«Операционные системы и сети, работа в Internet»
Государственных требований к минимуму содержания и уровню требований к специалистам для получения дополнительной квалификации «Специалист...
Разместите кнопку на своём сайте:
TopReferat


База данных защищена авторским правом ©topreferat.znate.ru 2012
обратиться к администрации
ТопРеферат
Главная страница