Государственный университет информационно – коммуникационных технологий
Курсовая работа
на тему:
Кэш-память
практическое задание: Дефрагментация диска
по предмету:
Операционные системы
выполнил:
Волоха Алексей Владимирович
группа ИБД-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.