Техническая идея КЭШ-памяти.
Непрерывный рост производительности ЭВМ проявляется в первую очередь в повышении скорости работы процессоров, при построении которых используются все более быстродействующие элементы и применяются современные архитектурные решения такие как конвейерная и векторная обработка данных.
Быстродействие ОЗУ также растет, но все время отстает от быстродействия процессора. Это отставание объясняется тем, что при построении ОЗУ используются в основном динамические элементы памяти, которые после цикла чтения информации требуют цикл регенерации (восстановления) прочитанной информации, на что тратится дополнительное время. Поэтому динамическая память работает в 8-10 раз медленнее, чем процессор, то есть цикл процессора в 8-10 раз меньше, чем цикл выборки данных из динамической памяти.
Вместо медленной динамической памяти можно было бы использовать более быструю статическую память, которая строится на триггерах, и имеет примерно такое же быстродействие, что и процессор.
Однако статическая память более дорогая, чем динамическая, что ведет к удорожанию всего ПК. Поэтому в ЭВМ с целью установления приемлемого соотношения стоимость/производительность используются различные структурные решения, как:
1)конвейеризация процедур цикла выполнения команд;
2)расслоение модуля оперативной памяти;
3)буферизация.
В простейшем случае конвейеризация заключается в выполнении операций в процессоре параллельно с выборкой из памяти следующей команды и операндов. Такое техническое решение позволяет существенно снизить простой процессора из-за ожидания поступления из памяти очередной команды, поскольку команда будет читаться из памяти заранее, когда процессор занят выполнением предыдущей команды.
Расслоение оперативной памяти производится путем многомодульного ее построения с чередующейся адресацией, когда смежные ячейки располагаются в разных модулях. Например, можно использовать два модуля памяти. При этом первый будет содержать ячейки с четными номерами, а второй – с нечетными. Пусть ширина выборки – одно слово. Тогда имеем следующие два модуля:
В такой памяти сразу после чтения слова из 1-го модуля можно читать следующее слово из второго модуля, не дожидаясь окончания цикла регенерации в 1-ом модуле. Таким образом, за счет перекрытия во времени обращений к разным модулям памяти возрастает быстродействие ОЗУ в целом.
Буферизация заключается во включении между процессором и ОЗУ быстродействующей буферной памяти.
Буферная память скрыта от программиста в том смысле, что он не может ей адресовать и может даже не знать о ее существовании.
Поэтому такая скрытая буферная память получила название КЭШ памяти, от английского слова Cache – тайник. Работа КЭШ памяти прозрачна, то есть невидима для пользователя.
Процессор в основном работает с данными, находящимися в КЭШ-памяти, и только при их отсутствии в КЭШ, вынужден обращаться к ОЗУ.
Поскольку буферная память более быстродействующая, чем ОЗУ, то использование КЭШ ведет к увеличению производительности компьютера. Причем производительность персонального компьютера будет тем больше, чем больше данных находится в КЭШ памяти, и, следовательно, персональный компьютер будет меньше обращаться к медленной оперативной динамической памяти.
Иерархия памяти строиться на нескольких уровнях, причем более высокий уровень меньше по объему, быстрее, имеет большую стоимость в пересчете на хранение одного байта, чем низкий уровень. Уровни и иерархия взаимно связаны, то есть все данные на одном уровне могут быть найдены на более низком уровне. А все данные на этом более низком уровне могут быть найдены на еще более низком уровне, пока не будет достигнуто основание иерархии. Обычно на вершине иерархии располагается быстрая КЭШ память. Основание иерархии занимает медленная динамическая память большого объема, то есть ОЗУ.
В каждый момент времени компьютер имеет дело только с двумя близлежащими уровнями. Минимальная единица информации – строка, которая может присутствовать или отсутствовать в двухуровневой иерархии.
Успешное или не успешное обращение к более высокому уровню называется попадание или промахом. Применительно к КЭШ памяти речь идет о КЭШ попадании и КЭШ промахе. Попадание есть обращение к данным, которое найдено на более высоком уровне, то есть в Кэш памяти. Промах означает отсутствие этих данных на этом уровне.
Рассмотрим двухуровневую иерархию, когда компьютер имеет ОЗУ и КЭШ память.
Организация КЭШ памяти определяется тем, каким образом достаточно большая оперативная память отображается на не сравнительно не большой КЭШ. Существует три разновидности отображения:
1. если каждая строка ОЗУ имеет фиксированное место расположения в КЭШ памяти, то КЭШ память называется КЭШом с прямым отображением. В этом случае адрес памяти определяет используемую строку КЭШа, а для адресации байта на строке используются младшие разряды адреса.
2. если некоторая строка оперативной памяти может располагаться на любом месте КЭШ памяти, то такая КЭШ память называется полнотью ассоциативной.
3. если некоторая строка ОЗУ может располагаться на ограниченном множестве мест в КЭШ памяти, то КЭШ называется множественно-ассоциативной или частично-ассоциативной.
Обычно множества, представляющие собой группу из двух или большего числа строк КЭШа. Если множество из N строк, то такое размещение называется множественно-ассоциативной с N каналами. Адрес множества определяется средними разрядами адреса памяти. Внутри множества строка может размещаться на любом местею
На практике используется одновременно и конвейер, и расслоение памяти, и буфер. Поэтому современные ЭВМ имеют высокую производительность.
Рассмотрим более подробно организацию КЭШ-памяти.
Дата добавления: 2015-08-14; просмотров: 881;