Устройство для передачи управления подпрограммам
Иллюстрации
Показать всеРеферат
АН-ИЕ
ОПИС
ИЗОБРЕТЕНИЯ
Союз Советских
Социалистических
Реслублик
К АВТОРСКОМУ СВИДЕТЕЛЬСТВУ (61) Дополнительное к авт. свид-ву (22) Заявлено 06.04.72 (21) 1770543 18-24 с присоединением заявки № (23) Приоритет
Опубликовано 30.07.75. Бюллетень № 28
Дата опубликования описания 09.10.75 (51) М, Кл. G 06f 9/ 9D
Государственный комитет
Совета Министров СССР ла делам изобретений и открытий (53) УДК 681.326.77 (088.8) (72) Авторы изобретения
В. М. Долкарт, М. М. Каневский, И. Р. Крамфус, Г. Х. Новик и В. H. Степанов (71) ЗаявителЬ (54) УСТРОЙСТВО ДЛЯ ПЕРЕДАЧИ УПРАВЛЕНИЯ
ПОДП РО ГРАММАМ
Изобретение относится к вычислительной технике и, в частности, к устройствам управления центральных процессоров.
Известны устройства для передачи управления подпрограммам, в которых применяются регистры-указатели для записи в них базовых адресов различных участков памяти.
Эти регистры образуют быструю память, имеющую матрицу выборки регистра по его адресу, а также оборудование управления.
Аппаратные затраты при этом весьма значительны.
Известны также устройства, содержащие аппаратуру для выполнения функций индексрегистров. Количество индекс-регистров, реализованных аппаратно, обычно не превышает
16. Поэтому необходимы специальные программные средства для перезапоминания содержимого индекс-регистров в память и из памяти при прерываниях и переходах к подпрограммам.
Это уменьшает эффективность использования процессоров.
В процессорах, где применяются в качестве индекс-регистров произвольные ячейки
ОЗУ, проблема сохранения содержимого индекс-регистров решается за счет аппаратного выделения нового участка ОЗУ под индексрегистры при переходе к подпрограммам. Это свойство обеспечивает повышение эффективности работы процессоров за счет ликвидации издержек на вспомогательные программы перезапоминания.
Цель изобретения — сокращение оборудования. При этом незначительно снижается быстродействие, так как для вхождения в подпрограмму необходимы два обращения к индикаторному регистру.
Исполнение подпрограммы требует значительно большего (на несколько порядков) числа обращений к ЗУ. Таким бразом, в процентном отношении потери времени из-за обращения к индикаторному регистру весьма незначительны.
В предлагаемое устройство введены индикаторный регистр и блок пуска подпрограмм, входы которого соединены соответственно с выходами индикаторного регистра, блока управления и регистра базы индекса. Первый
20 выход блока пуска подпрограмм подключен к входу блока управления, второй выход — к второму входу регистра базы индекса, третий выход — к первому входу индикаторного регистра, второй вход которого соединен с вы25 ходом блока управления.
На чертеже представлена схема устройства.
Она содержит блок 1 формирования адреса; блок 2 перемещения и защиты программ; регистр 3 номера индекса; регистр 4 базы ин30 декса; индикаторный регистр 5; блок 6 пуска
479113
3 подпрограмм; блок 7 управления; шину 8 переполнения; шину 9 занятия уровня; шину 10 номера уровня.
При построении многопрограммных вычислительных машин, особенно многопроцессорных вычислительных комплексов, возникает проблема передачи управления общим подпрограммам, т. е. таким подпрограммам, которые используются совместно с несколькими задачами многопрограммной системы, выполняющимися, возможно, на нескольких процессорах. При этом возникают ситуации, когда общая подпрограмма, будучи незаконченной, прерывается, а затем происходит новое обращение к ней из другой задачи. Возможна также ситуация, когда два процессора почти одновременно могут обратиться к общей подпрограмме и далее выполнять ее со сдвигом на одну или несколько команд. В первом случае следует выполнить общую подпрограмму, выйти из нее и в будущем довыполнить ее с прерванного места и выйти из подпрограммы в точку обращения. Во втором случае необходимы независимое исполнение общей подпрограммы двумя или более процессорами и по окончании подпрограммы выход из нее каждого процессора в точку обращения.
Для того чтобы подпрограмма обладала такими свойствами, нужно выполнить несколько условий. В частности, подпрограмма должна быть закодирована так, чтобы она не содержала в своем теле переменных команд и рабочих ячеек. В противном случае повторное вхождение в общую подпрограмму до окончания ее работы по первому вхождению должно быть запрещено.
Вторым необходимым условием рентабельности общей подпрограммы является предоставление каждому вхождению в общую подпрограмму своей группы индекс-регистров и рабочих ячеек.
Обеспечение требуемой формы кодирования .возлагается на программиста. Второе же условие может быть реализовано аппаратно.
Особенно это удобно, если индекс-регистры .физически размещаются в оперативной памяти .и адрес их начала тем или иным образом связан с адресом начала общей подпрограммы.
Предлагаемое устройство решает эту задачу, Каждая подпрограмма, расположенная в оперативном запоминающем устройстве, начинается со служебной группы ячеек, назы.ваемых программным уровнем. Эти ячейки используются в качестве индекс-регистров. Одна из этих ячеек отведена для хранения содержимого индикаторного регистра 5. Если подпрограмма рассчитана на несколько вхождений, то в ее начале отводится несколько групп служебных ячеек — программных уровней, .Разряды регистра 5 пронумерованы слева направо и первый разряд регистра соответствует первому уровню, второй разряд — второму уровню и т. д. Если значение разряда регистра 5 равно единице, это означает, что соответ5
65 ствующий уровень занят вхождением в подпрограмму, т. е, подпрограмма выполняется или, по крайней мере, начала выполняться каким-либо процессором с использованием данного программного уровня. Если значение разряда регистра 5 равно нулю, это значит, что соответствующий уровень свободен.
При выполнении процедуры входа в подпрограмму, блок 6 пуска подпрограмм просматривает слева направо регистр 5 данной подпрограммы для того, чтобы найти ближайший нулевой разряд.
Если нулевой разряд найден, то блок 6 пуска подпрограмм через шину 9 занятия уровня устанавливает в этом разряде единицу, а на шине 10 номера уровня — номер этого разряда в регистре 5. Номер уровня с шины 10 поступает на регистр 4 базы индекса и в дальнейшем используется при определении физических адресов ячеек памяти, используемых в качестве индекс-регистров, Если при просмотре блоком 6 пуска подпрограмм регистра 5 нулевого разряда не обнаружено, то блок б через шину 8 переполнения сообщает об этом блоку 7 управления, который прекращает выполнение передачи управления подпрограмме.
Таким образом, если подпрограмма рассчитана на одно вхождение, то индикаторный регистр 5 должен вначале содержать только один нулевой разряд. Все остальные разряды должны быть единичными.
В случае выполнения процедуры выхода из подпрограммы блок б пуска подпрограмм, по номеру уровня, поступающему на его вход из регистра 4 базы индекса, устанавливает в нуль по шине 9 занятия уровня разряд индикаторного регистра, соответствующий номеру освобождаемого уровня.
При исполнении подпрограммы на любом из уровней вхождения физические адреса индексрегистров о бр азуются следующим обр азом.
Блок 2 перемещения и защиты программ предназначен для преобразования относительных адресов программ и групп программ в физические адреса оперативной памяти. При этом преобразовании блок 2 перемещения и защиты программ проверяет не выходит ли полученный адрес за диапазон адресов, допустимых для данной группы программ, осуществляя тем самым функцию защиты программ.
При образовании физического адреса индекс-регистра, блок 2 передает в блок 1 формирования адреса физический адрес начала подпрограммы в оперативной памяти. Этот адрес должен содержать в младших разрядах нули. Регистр 4 базы индекса передает в блок 1 формирования адреса номер уровня вхождения в подпрограмму, образуя следующую, более младшую группу разрядов физического адреса индекс-регистра. Младшие разряды физического адреса индекс-регистра берутся из регистра 3 номера индекса, откуда они поступают в блок 1 формирования адреса, 479113
Составитель А. геренов
Редактор И, Грузова Техред М. Семенов Корректор Е. Рогайлнна
Заказ 2486/2 Изд, Ие 1649 Тираж 679 Подписное
ЦНИИПИ Государственного комитета Совета Министров СССР по делам изобретений и открытий
Москва, Ж-35, Раушская наб., д. 4/5
Типография, г . Сапунова, 2
Таким образом, устройство для передачи управления подпрограммам обеспечивает предоставление каждому новому вхождению в подпрограмму своего набора индекс-регистров. Если подпрограмма пе рассчитана на повторные вхождения, то устройство позволяет обнаружить попытки такого вхождения.
Предмет изобретения
Устройство для передачи управления подпрограммам, содержащее регистр номера индекса, регистр базы индекса, блок перемещения и защиты программ, выходы которых подключены к соответствующим входам блока формирования адреса, входы соединены с выходом блока управления, вход блока формирования адреса подключен к выходу блока управления, о т л и ч а ю щ е е с я тем, что, с целью сокращения оборудования, оно содержит индикаторный регистр и блок пуска подпрограмм, входы которого соединены соответственно с выходами индикаторного регистра, блока управления и регистра базы индекса, первый выход блока пуска подпрограмм подключен к входу блока управления, второй выход соединен с вторым входом регистра базы индекса, третий выход подключен к первому входу индикаторного регистра, второй вход которого подключен к выходу блока уп15 равления.