logo search
КС-ZAO / Лекции ЦЭВМруский вариант11

§9.8. Генераторы адреса и программный автомат

Два специальных генератора адреса данных и программный автомат обеспечивают работу вычислительных регистров с максимальной производитель­ностью. Генераторы адреса данных генерируют адреса памяти, когда данные памяти пересылаются в или из регистров ввода или вывода. Каждый генератор адреса сохраняет до четырех указателей адреса. Когда указатель используется для косвенной адресации, он модифицируется на величину, содержащуюся в заданном регистре. Имея два генератора адреса данных, процессор может одновременно генерировать два адреса для выборок двух операндов.

Каждому указателю может соответствовать значение длины буфера для реализации адресации по модулю при организации циклических буферов. (Свой­ство циклического буфера также используется в последовательных портах и ана­логовом интерфейсе для автоматических передач данных. За дополнительной ин­формацией обратитесь к главе о последовательных портах). Генератор адреса данных 1 может генерировать адреса только для памяти данных. Генератор адреса данных 2 может генерировать адреса либо для памяти данных, либо для памяти программы. При установке бита соответствующего режима в регистре состояния режима (MSTAT) биты выходного адреса генератора адреса данных 1 переставляются в обратном порядке перед их выводом на шину адреса. Это свойство облегчает организацию бит-реверсной адресации при вы­полнении быстрого преобразования Фурье (БПФ). Программный автомат посылает адреса команд в память программы. Про­граммный автомат управляется регистром команд, в котором содержится текущая выполняемая команда. Регистр команд позволяет ввести один уровень конвейер­ной обработки в поток программы. Команды выбираются и загружаются в регистр команд за один цикл процессора и выполняются в течение следующего цикла, в то время как подготавливается выбор следующей команды. Для сокращения коли­чества холостых циклов программный автомат осуществляет поддержку условных переходов, вызовов подпрограмм и возврата в основную программу за один цикл. Благодаря счетчику циклов и стеку цикла процессор выполняет программу цикла с нулевыми потерями. Никаких дополнительных команд перехода для организации циклов не требуется.