Так как мы должны увеличить объем RF в n раз, то мы для каждого входа А В и С добавлем log n разрядов(в 4 раза – 2 разрядов,в 8 раз – 3 разрядов) и эти разряды заводим со специального счетчика глубины вложенности подпрограмм, который имеет 2 входа и 2 выхода.
+1 – приходит из УУ, когда выполняется команда call-вызов подпрограммы.
-1 — приходит из УУ, когда выполняется команда return-возврат подпрограммы.
Р+ и Р- отрицательные или положительные переполнения кольцевой памяти поступают в УБ для генерации прерывания по переполнению кольцевой памяти.
Прерывание – это аппаратно порождаемая асинхронная команда, в том смысле что она может быть вставлена между двумя любыми командами любой программы.
При прерывании происходит сохранение(восстановление) всей или части кольцевой памяти.
Для перекрытия банков регистров схема на предыдущем рисунке может быть усложнена путем использования специальной схемы, вычисляющей начальный адрес следующего или предыдущего банка кольцевой памяти, а также сумматор, позволяющий получить регистра А или В путем сложения номера регистра из команды и начального адреса банка.
