Локальным запоминающим устройством(ЛЗУ) называют буферное ЗУ, расположенное между микропроцессором и основным ЗУ (рис. 1)
Рис. 1.
Идея использования ЛЗУ базируется на том факте, что быстродействие ЛЗУ существенно больше быстродействия основного ЗУ. Это достигается за счет использования для построения ЛЗУ статических запоминающих элементов (в отличие динамических запоминающих элементов, используемых в ОЗУ). Но так как статическое ЗУ существенно дороже динамического, объем ЛЗУ существенно меньше объема ОЗУ.
Итак, ЛЗУ характеризуется двумя основными моментами:
Быстродействие ЛЗУ существенно больше быстродействия ОЗУ.
Емкость ЛЗУ существенно меньше емкости ОЗУ.
Использование ЛЗУ базируется на двух основополагающих допущениях:
Микропроцессор в процессе своей работы многократно обращается к одним и тем же данным
Эти данные расположены в ЗУ компактно.
Первое допущение в большинстве случаев справедливо. Данные, являющиеся кодами команд расположены в ЗУ последовательно. В случае наличия в программе циклов или многократно вызываемых процедур (а это почти всегда так), процессор действительно многократно обращается к одним и тем же командам, расположенным в ЗУ. Если же говорить о данных, являющихся собственно данными (числами — исходными или результатами вычислений) — их объем, как правило, невелик и с учетом цикличности любого расчетного алгоритма к ним происходит многократное обращение.
Второе допущение, вообще говоря, можно считать справедливым только при определенной организации программы — оптимизации. Таким образом, получение полного эффекта от использования ЛЗУ возможно только при оптимизации программы.
ЛЗУ является "невидимым" для МП и программы. МП, запрашивая данные из памяти по определенному адресу, не знает о наличии ЛЗУ. Поэтому ЛЗУ часто называют "кэш-памятью" (от английского слова cache — тайный склад, тайник).
Так как объем ЛЗУ существенно меньше объема ЗУ, основная задача, решаемая при проектировании ЛЗУ — оптимальное отображение в ЛЗУ той части ОЗУ, к которой как раз обращается МП наиболее часто в данный интервал времени.
Архитектура ЛЗУ
В общем случае ЛЗУ состоит из собственно запоминающего устройства и контроллера ЛЗУ, который управляет работой ЛЗУ.
Задачи контроллера следующие:
Принять от МП запрос на загрузку данных из основного ЗУ, расположенных по определенному адресу.
Проверить, есть ли эти данные в ЛЗУ.
Если есть (случай "кэш-попадания"), вернуть процессору данные из ЛЗУ.
Если нет (случай "кэш-промаха"), загрузить данные из ОЗУ в ЛЗУ и передать их процессору.
Задача построения оптимальной архитектуры ЛЗУ предполагает минимизацию "промахов" при относительно небольшом объеме ЛЗУ.