Кэш – память и принципы ее организации

Страницы работы

Содержание работы

IV. КЭШ – ПАМЯТЬ И ПРИНЦИПЫ ЕЕ ОРГАНИЗАЦИИ.

1.  Назначение.

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

Иерархия основных запоминающих устройств, составляющих память современного компьютера, программно доступная пользователю, может быть иллюстрирована рисунком IV.1.

 

Рис.IV.1   Иерархия основных запоминающих устройств компьютера

                          программно доступных пользователю.

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

Из рисунка следует, что существует весьма значительный разрыв по быстродействию между регистровой памятью и оперативной, а также между оперативной памятью и памятью внешней. Этот разрыв в современных процессорах сглаживается с помощью специальных буферных запоминающих устройств, программно недоступных и прозрачных для пользователя. Особенно неприятен разрыв по быстродействию между регистровой и оперативной памятью. Действительно, лучшие современные микросхемы динамической оперативной памяти обладают временем доступа порядка 40 нс, а обращение к регистрам современного процессора может происходить за доли наносекунды. Следовательно, для согласования скорости работы процессора и оперативной памяти приходиться вводить дополнительные циклы ожидания, а это ведет к резкому снижению производительности системы. Реализация же оперативной памяти на быстрых микросхемах памяти статического типа привело бы к существенному удорожанию системы и снижению ряда ее эксплуатационных характеристик (увеличению габаритных размеров, веса, росту потребляемой мощности и т.д.). Эта проблема может быть существенно упрощена, если между сравнительно медленной оперативной памятью и быстрым процессором (точнее, его регистровой памятью) поместить некоторую буферную память относительно небольшой емкости, но с возможностью работы на частоте равной или близкой тактовой частоте процессора. При этом тактов ожидания центрального процессора либо не будет вообще, либо  они будут сведены к минимуму. Такая буферная память получила название кэш-памяти (от английского слова Cache – тайник, склад, «заначка»). Запоминающее устройство кэш-памяти обычно представляет собой статическое запоминающее устройство (SRAM), обладающее на порядок большим быстродействием, чем самые быстродействующие динамические RAM, на которых основана основная оперативная память. Таким образом, назначением кэш-памяти является согласование скорости работы центрального процессора и оперативной памяти системы. Впоследствии,  понятие кэш-памяти распространилось и на буферные памяти другого назначения (совокупность теневых регистров в системе формирования линейного адреса с помощью дескрипторных таблиц, буфер TLB при организации страничной переадресации и даже на буферную память между внешней и оперативной памятью). Вполне понятно, что кэш-памяти организуются либо в виде регистровой памяти, либо на микросхемах памяти статического типа, как обладающих максимальным быстродействием. Увеличенное энергопотребление и меньший уровень интеграции статических микросхем ЗУ, при этом, отходит на второй план в связи со сравнительно небольшим объемом кэш-памяти. Заметим, что кэшироваться, т.е. передаваться из основной памяти в кэш-память, может не вся память , доступная процессору. Обычно кэшируется только основная динамическая память системной платы (память, установленная на адаптерах не кэшируется), и даже из этой памяти кэшируется только часть (еще совсем недавно широко распространенные версии Chipsets для Pentium часто позволяли кэшировать только первые 64 Мбайт ОЗУ). Заметим, что хотя работа кэш-памяти и прозрачна для программиста, однако знание особенностей ее функционирования позволяет в ряде случаев существенно сократить время выполнения программы.

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

Кроме того, весьма вероятно и то, что в ближайшем будущем программа обратится к ячейке, которая следует за той, к которой она обращается в текущий момент времени. Это положение определяет принциппространственной локальности.

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

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

Похожие материалы

Информация о работе