Cтраница 2
Как показывает приводимая программа, при наличии индексных регистров она может быть несколько сокращена, потребность в ячейках при этом также уменьшается. При использовании индексных регистров в качестве счетчика циклов программа может быть еще незначительно уменьшена. Если ввести в один из индексных регистров значение числа циклов, то ЭВМ автоматически будет контролировать переходы на новые циклы и зафиксирует их окончание в случае возникновения нулевого значения этого индексного регистра. С помощью индексных регистров, следовательно, облегчается составление циклических программ, что имеет важное значение при решении учетных задач с помощью ЭВМ. [16]
Не менее важ-лое значение имеет использование индексных регистров для обращения к подпрограммам, а также для их организации, в особенности для обеспечения модификации подпрограмм применительно к задаваемым фактическим параметрам, вызываемым по наименованию. [17]
Весьма полезным может быть и ряд других действий с использованием индексных регистров, например, условный переход в зависимости от их содержимого. Ниже приводятся операции УВМ с использованием индексных регистров. [18]
На примере 12.3 мы видели, что если при обращении к подпрограмме задается информация о фактических параметрах, вызываемых по наименованию, то извлечение этой информации и соответствующая модификация ( настройка) подпрограммы требуют значительного числа вспомогательных команд в подпрограмме. Эта задача сильно упрощается с использованием индексных регистров, как за счет того, что облегчается извлечение заданной информации о фактических параметрах, так и за счет того, что в ряде случаев отпадает необходимость формирования команд, использующих эту информацию. Вместо формирования команды можно посылать в один из индексных регистров адрес, соответствующий тому или иному фактическому параметру, а в команде, которая должна использовать этот адрес, достаточно иметь единицу в признаке модификации по данному индексному регистру и нули в адресной части. [19]
![]() |
Структура команды УВМ. [20] |
Группы разрядов 0 - 2 и 3 - f - 5 команды, обозначаемые через я, и л2, служат для задания признаков автоматической модификации данной команды. Назначение этих разрядов тесно связано с использованием индексных регистров и будет предметом подробного рассмотрения в дальнейшем. [21]
Если переменные имеют непересекающиеся области действия, то в процессе оптимизации ( экономии) памяти их следует размещать в одних и тех же ячейках памяти. Этим же методом решается и задача оптимизации использования индексных регистров. Если в программе используется подряд несколько одинаковых модификаций, то многократное вычисление и засылка значений на индексный регистр для сокращения времени счета должно быть исключено. [22]
В этой подпрограмме пришлось использовать переменную команду ( с меткой ВЫХ); наличие только / одного индексного регистра не позволяет решить эту задачу иным способом, ибо последняя команда - команда возврата - тоже содержит переменный адрес, для управления которым требуется использование индексного регистра. [23]
Прежде всего здесь снова возникает вопрос об обеспечении обратной связи. В главе 12 мы рассмотрели весьма универсальный способ фиксации места обращения к подпрограмме, однако этот способ требует ряда дополнительных команд в подпрограмме для того, чтобы обеспечить возврат в основную программу. Использование индексных регистров позволяет решить эту задачу значительно проще при том же по существу способе фиксации места обращения к подпрограмме. [24]
Однако на объем ОЗУ, необходимый для решения задачи, повлияет и значность реквизитов. Так, при трех - или четырехзначном табельном номере для ЭВМ Иск-ра - 555 возможно использование индексных регистров, тогда как при пятизначном потребуется короткий регистр ОЗУ. [25]
После того как выделены входы, изменившие состояние, и определен тип изменения, необходимо идентифицировать программу, подлежащую выполнению в ответ на это изменение. Серия команд выполняет операцию И над каждым битом входного набора и таблицы, причем до появления единицы, после чего управление передается соответствующей служебной программе. Для осуществления этой операции программа должна состоять из серии сдвигов и ветвлений. Использование индексного регистра сводит оба способа к организации циклов. Если в систему команд входит команда сдвига и счета, то бит, изменивший свое состояние, обнаруживается сразу. Эта команда обычно действует вместе со счетчиком сдвигов или индексным регистром, что следует учитывать при оценке программного обеспечения. [26]
При использовании в ЦВМ индексных ячеек значительно уменьшается объем оборудования по сравнению с вариантом, основанным на использовании индексных регистров. Уменьшение объема оборудования достигается, во-первых, за счет исключения из ЦУУ индексных регистров, во-вторых, за счет уменьшения числа специальных операций, ориентированных на выполнение действий с индексами. Число машинных операций уменьшается, поскольку операции над индексами, хранимыми в ЗУ, выполняются так же, как над любыми другими информационными словами. При использовании индексных ячеек время выполнения модифицируемых команд увеличивается по сравнению с вариантами, основанными на использовании индексных регистров. Поскольку выборка слова из регистра происходит значительно быстрее, чем выборка слова из ЗУ, то использование индексных регистров приводит к уменьшению затрат времени на выполнение модифицируемых команд. [27]
При использовании в ЦВМ индексных ячеек значительно уменьшается объем оборудования по сравнению с вариантом, основанным на использовании индексных регистров. Уменьшение объема оборудования достигается, во-первых, за счет исключения из ЦУУ индексных регистров, во-вторых, за счет уменьшения числа специальных операций, ориентированных на выполнение действий с индексами. Число машинных операций уменьшается, поскольку операции над индексами, хранимыми в ЗУ, выполняются так же, как над любыми другими информационными словами. При использовании индексных ячеек время выполнения модифицируемых команд увеличивается по сравнению с вариантами, основанными на использовании индексных регистров. Поскольку выборка слова из регистра происходит значительно быстрее, чем выборка слова из ЗУ, то использование индексных регистров приводит к уменьшению затрат времени на выполнение модифицируемых команд. [28]
Все ОЗУ условно делят на страницы по 512 слов каждая, за исключением нулевой страницы, содержащей 1024 ячейки. Каждой задаче пользователя отводят массив памяти, заключающий целое число страниц и не превышающий 32 Кслов. Каждая задача имеет выход на нулевую и текущую страницы своего массива. В командах предусмотрена адресация как к нулевой, так и к текущей странице. Способ адресации в командах выбран таким, что кроме указания обращения к нулевой или текущей странице имеются указания о прямой или косвенной адресации и об использовании индексных регистров. [29]
Рассмотрим, например, одну из характеристик, которая присутствует в каждой такой таблице, - число индексных регистров. Казалось бы, если одна ЭВМ имеет три индексных регистра, а другая - только один, то первая имеет определенные преимущества перед второй. Если в одной ЭВМ применяются три индексных регистра, причем все три входят в главную память, а в другой - один индексный регистр, реализуемый аппаратно, то разница может быть весьма мала, поскольку модификация адреса регистрами, входящими в главную память, отнимает значительное время, тогда как модификация на аппаратных регистрах практически мгновенна. Важно, как используются индексные регистры. Если исполнительная программа одной системы требует более специализированного использования индексных регистров, чем другая, то численное преимущество теряется. С другой стороны, если специализированное использование большего числа индексных регистров снижает затраты системных ресурсов, то преимущество налицо. [30]