Буферные (сверхоперативные) ЗУ, кэш-память.
Для уменьшения затрат времени на чтение и запись операндов между процессором и ОП ставится быстродействующее ЗУ небольшой емкости, в котором размещаются слова, наиболее интенсивно используемые натекущем этапе решения задачи. Такого рода ЗУ называются БЗУ, СОЗУ или кэш-память.
Принцип включения БЗУ между АЛУ и ОП приведён на рис. 6.15. Для выборки операнда, отсутствующего в БЗУ, производится обращение к ОП и операнд на цепи 1 передаётся в АЛУ и БЗУ. Запись операнда в БЗУ производится в предположении, что этот операнд может потребоваться на последующем этапе вычислений. Если операнд размещается в БЗУ, то он выбирается по цепи 2. Результаты арифметических операций посылаются в БЗУ по цепи 3. БЗУ разгружается по мере надобности путём пересылки хранимых в нём слов в ОП. Для разгрузки БЗУ служит цепь А. Уменьшение числа обращений к ОП происходит за счёт повторных обращений к операндам и результатам, ранее загруженным в БЗУ. Количество обращений к БЗУ зависит от емкости БЗУ, класса решаемых задач и способа организации БЗУ.
Рисунок 6.15 – Включение СОЗУ (БЗУ)
Структура СОЗУ в большой степени зависит от принятого в нём способа поиска информации. Наиболее широко используется ЗУ с прямой, магазинной и ассоциативной адресацией информации.
БЗУ с прямой адресацией
ЗУ с прямой адресацией ( рис. 6.16а,б) состоит из совокупности регистров Рг0, ..., Ргм, связанных со входной Х и выходной Yшинами, по которым передаются n-разрядные слова.
Рисунок 6.16 – БЗУ с прямой адресацией (а) и структура его взаимодействия с АЛУ и ОП
Адрес регистра, к которому производится обращение с целью записи или чтения информации, поступает по шине АБЗУ. Дешифратор адреса ДША формирует управляющие сигналы 0, 1, ..., М, подключающие регистр с заданным адресом к шинам БЗУ.
БЗУ подключается к АУ и ОП по схеме на рис. 6.11б. В данном случае для передачи информации между устройствами используется n-разрядная магистраль, позволяющая выполнять любые микрооперации передачи между регистрами р, РБЗУ, РОП. Управление передачами производится по командам. В рассматриваемой схеме команды содержат два адреса. Адрес А1 определяет регистр БЗУ. Поле А2 команды используется для представления адреса ОП, но может содержать адрес БЗУ. Назначение адреса А2 определяется признаком, включённым в поле кода операции КОП.
Обмен информацией между АУ, БЗУ и ОП программируется командами, инициирующими посылочные и арифметические операции.
БЗУ с прямой адресацией обычно имеет емкость от 16 слов до 64. Порядок использования ёмкости БЗУ определяется в процессе разработки системы программирования ЭВМ, т.е. является компетенцией программистов. Естественно, что в БЗУ должна загружаться наиболее интенсивно используемая информация. В ЭВМ БЗУ с прямой адресацией применяется, в первую очередь, для хранения базовых адресов и индексов, которые многократно используются при обработке команд и, кроме того, часто модифицируются путём выполнения над ними арифметических операций. Свободная часть ЗУ используется для размещения данных, относящихся крешаемым задачам. При программировании задач обычно отсутствует априорная информация о частоте использования данных в процессе счёта, что ограничивает возможность оптимальной загрузки БЗУ. Особую сложность этот вопрос приобретает при автоматическом программировании, когда машинные программы составляются на основе алгоритмов, записанных в терминах поцедурно-ориентированных языков. В связи с этим работу с БЗУ можно эффективно запрограммировать только на уровне стандартных программ, реализующих достаточно элементарные процедуры вычисления функций, преобразования чисел и т.д. Таким образом, функции БЗУ с прямой адресацией обычно ограничиваются хранением модификаторов адресов и операндов, относящихся к стандартным программам системы математического обеспечения ЭВМ, в результате чего БЗУ использует производительность процессора не более чем на 15-20%.
Обычно БЗУ с прямой адресацией встраивается в процессор и рассматривается как внутренняя память самого процессора.
ЗУ с стековой адресацией
Некоторый автоматизм в процессе планирования работы БЗУ можно внести путём стековой адресации ячеек ЗУ. Стековая память, или стек, или LIFO (last – in, first – out) бывает выполнена в виде автономного ЗУ (в виде регистров), или в качестве этой буферной памяти используется часть ОП (рис 6.17). Для стековой адресации ячеек ЗУ (рис 6.17а) используется счётчик адреса (рис 6.17б). Указатель стека (stackpoint) представляет собой регистр, который хранит адрес последней занятой ячейкой в стеке.
Рисунок 6.17 – Структура ЗУ с стековой организацией
Счётчик адреса СЧА устанавливается в состояние 0 и память считается пустой. Примем, что состояние СЧА определяет адрес первой свободной ячейки. Слово загружается в ЗУ с входной шины Х в момент поступления сигнала записи ЗПМ. По сигналу ЗПМслово Х записывается на регистр Рг[СЧА], номер которого определяется текущим состоянием СЧА, после чего с задержкой, достаточной для микрооперации передачи Рг[СЧА]:=Х, состояние счётчика увеличивается на 1. Таким образом при последовательной загрузке слова A, B, C,… размещаются в регистрах с адресами Рг [S], Рг[S+1], Рг[S+2], ... где S – состояние счётчика на момент начала загрузки. Операция чтения слова из ЗУ инициируется сигналом ЧТМ, при поступлении которого состояние счётчика уменьшается на единицу, после чего на входную шину Yпоступает слово, записанное в ЗУ последним. Если слова загружались в ЗУ в порядке A, B, C,…, то они могут быть прочитаны только в обратном порядке C, B, A.
Принцип стековой адресации оказывается весьма удачным при вычислении арифметических и булевых выражений. В этом случае исходные значения загружаются в ЗУ из ОП. Все промежуточныерезультаты и конечный результат автоматически засылаются в ЗУ. Вычисление выражения заканчивается записью результата в ОП.
В описании операций значение счётчика указывается на момент начала операции. Команда АО является безадресной (0-адресной) и содержит только код операции.
Все промежуточные результаты автоматически сохраняются в ЗУ, благодаря чему исключается необходимость в засылке их в ОП и в последующей выборке этих значений. За счёт этого уменьшаются затраты времени на вычисление выражений, то есть увеличивается быстродействие ЭВМ.
Поскольку принцип стековой адресации приводит к экономии времени только при вычислении достаточно сложных выражений, то он находит применение в ЭВМ, ориентированных на решение научных и технических задач. Если процент арифметических и логических операций невелик, и в задачах фигурируют в основном короткие выражения, при вычислении которых отсутствует необходимость в хранении большого числа промежуточных значений, то использование ЗУ со стековой адресацией даёт очень небольшой эффект.