SRAM
SRAM (Static Random Access Memory) - быстродействующая энергонезависимая память на триггерах, обычно используемая для создания Кэша, промежуточного звена между высокопроизводительным процессором и не такой быстрой динамической памятью.
История
Изначальная идея кэша — это буферизация, например, при работе с жесткими дисками происходит не побитовое чтение, а читается сразу множество бит в специальный буфер, доступ к которому возможен значительно быстрее, чем к информации, записанной на диске. Однако применительно к кэшу оперативной памяти такой простой подход не годился по многим причинам. Кэш процессоров Intel разделён на 3 части : Кэш команд, кэш данных и буфер ассоциативной трансляции.
Впервые кэш в процессорах Intel появился в некоторых Intel 80386, представленный в виде улучшенного контроллера памяти, позволяющий использовать микросхемы SRAM на материнской плате в качестве кэша. В 486 было уже два вида кэша: В intel 486DX был кэш внутри процессора уровня L1, а также на материнской плате располагался кэш L2 - второго уровня (опять в виде отдельных SRAM микросхем, как на фотографии (1)).
Иерархия памяти
Процессор может выполнять команды со скоростью частота шины x множитель, но если команда обращается к памяти(типичная ситуация), то процессор должен произвести операцию ввода/вывода с памятью через специальную шину, вот только она всё равно не такая быстродействующая, как процессор. Если ничего не предпринимать, то производительность всей системы застрянет в этом бутылочном горлышке, процессор большую часть времени будет ждать окончания работы с DRAM. Кроме того, команды для процессора тоже находятся в оперативной памяти и их тоже необходимо читать. Поэтому в кэш команд помещаются ближайшие к текущей команды, чтобы не читать их из медленной памяти, а в кэш данных помещаются копии тех частей памяти, к которым чаще всего происходит обращение.
Итоговая картина такова: самыми быстрыми ячейками памяти являются регистры процессора, но их очень мало и их нельзя просто увеличивать, так как регистры процессора это очень сложные устройства из сотен тысяч транзисторов. На втором месте находится кэш L1, он расположен внутри процессора и работает на его частоте и позволяет процессору работать на номинальной частоте. Его размер совсем мал, единицы или десятки килобайт. есть ещё дополнительные уровни кэш памяти L2, L3 итп, то есть кэш L2 имеет больший размер, чем L1, но меньший, чем L3, но работает быстрее последнего. Но кэш не используется как дополнительный объём памяти, например, если в компьютере есть 4 мебибайта кэша и 8 мебибайт оперативной памяти то полный объём памяти всё равно 8 мебибайт.
Дальше располагается DRAM, эта память достаточно быстродействующая, чтобы использовать её в качестве кэша для жесткого диска или CD-ROM, её объём значителен, а цена невелика. Но и её часто не хватает, тогда часть информации можно выгрузить на следующий уровень памяти — на жесткий диск, бит информации на котором стоит ещё дешевле, поэтому их объём обычно в сотни раз больше, чем DRAM.
Настройки кэша
- TODO Кто-нибудь компетентный может сюда написать что-нибудь об WB WC итп.