устройство переключения программ
Классы МПК: | G06F9/48 инициирование программы; переключение программы, например, прерыванием G06F9/28 увеличение операционной скорости, например с помощью нескольких устройств микроуправления, работающих параллельно |
Автор(ы): | Молчанов Олег Евграфович (RU), Хлобыстов Александр Николаевич (RU), Петухов Виктор Анатольевич (RU) |
Патентообладатель(и): | Военно-космическая академия имени А.Ф. Можайского (RU) |
Приоритеты: |
подача заявки:
2006-03-28 публикация патента:
27.01.2008 |
Изобретение относится к области вычислительной техники, в частности к системам прерывания ЭВМ. Технический результат изобретения заключается в уменьшении времени переключения программ и уменьшении длины прерывающих программ. Технический результат достигается за счет запоминания содержимого каждого регистра в отдельном стековом запоминающем устройстве (ЗУ). Адресные входы всех ЗУ соединены с выходами общего указателя стека. При запоминании содержимое всех регистров передается в вершины стека всех ЗУ, при восстановлении содержимое вершин стека всех ЗУ передается в соответствующие регистры. 3 ил.
Формула изобретения
Устройство переключения программ, содержащее общие регистры процессора, выходы которых соединены с информационными входами соответствующих запоминающих устройств, а входы - с выходами соответствующих пар ключей, информационные входы первого из которых соединены с первыми входами устройства, через которые загружается вектор прерывания, а информационные входы второго - с информационными выходами соответствующих запоминающих устройств, адресные входы которых подключены к выходам указателя стека, суммирующий вход которого соединен с открывающими входами первых ключей и через первый элемент задержки со вторым входом устройства, на который поступает сигнал прерывания, и первыми управляющими входами запоминающих устройств, предназначенными для управления запоминанием состояния прерываемой программы путем одновременной передачи содержимого общих регистров в запоминающие устройства, вторые управляющие входы запоминающих устройств, предназначенные для управления восстановлением прерванной программы путем передачи выбранных ячеек памяти из запоминающих устройств в общие регистры, соединены с открывающими входами вторых ключей и через второй элемент задержки с вычитающим входом указателя стека и третьим входом устройства, на который поступает сигнал восстановления.
Описание изобретения к патенту
Изобретение относится к области вычислительной техники, в частности к устройствам переключения программ в системах прерывания ЭВМ.
При прерывании программ для обеспечения возврата к выполнению прерванной программы необходимо запомнить содержимое тех общих регистров, которые будут использоваться в прерывающей программе. В конце выполнения прерывающей программы содержимое этих регистров должно быть восстановлено. Время запоминания и восстановления содержимого общих регистров процессора часто называют временем переключения программ.
Известно [1], что в некоторых ЭВМ запоминание и восстановление содержимого общих регистров возлагается на прерывающую программу и осуществляется программным способом (фиг.1).
Недостаток этого способа переключения программ состоит в том, что запоминание и восстановление содержимого регистров осуществляется последовательно во времени и, следовательно, время переключения программ зависит от количества регистров, содержимое которых необходимо запомнить. Это приводит к увеличению времени переключения программ и длины прерывающих программ, что в конечном счете увеличивает время реакции ЭВМ на запросы прерывания.
Наиболее близким техническим решением к предлагаемому является устройство переключения программ [2], в котором для запоминания и восстановления содержимого общих регистров используется стек (фиг.2), содержащий запоминающее устройство и указатель стека, выполненный в виде реверсивного счетчика. Запоминание содержимого регистров в стеке осуществляется с помощью команд передачи информации в стек с автоинкрементной адресацией по указателю стека, а восстановление содержимого регистров - с помощью команд чтения стека с автодекрементной адресацией по указателю стека.
Недостатком такого устройства является большое время переключения из-за последовательного запоминания и восстановления содержимого регистров в стековой памяти и увеличение длины прерывающих программ из-за необходимости выполнения команд запоминания и восстановления содержимого регистров.
Цель изобретения - уменьшение времени переключения программ за счет одновременного запоминания и одновременного восстановления содержимого регистров и уменьшение длины прерывающих программ за счет сокращения количества команд запоминания и восстановления содержимого регистров (за счет уменьшения количества обращений к стековой памяти).
Поставленная цель достигается тем, что в устройство переключения программ, содержащее n общих регистров и указатель стека, дополнительно введено n запоминающих устройств. Выходы общих регистров соединены с информационными входами соответствующих запоминающих устройств, а информационные входы регистров - с выходами соответствующих запоминающих устройств, адресные входы которых подключены к выходам указателя стека, первый вход которого через первый элемент задержки соединен с первым входом устройства и с первыми управляющими входами запоминающих устройств, вторые управляющие входы которых через второй элемент задержки связаны со вторым входом указателя стека и со вторым входом устройства.
Схема предлагаемого устройства приведена на чертеже (фиг.3).
Устройство переключения программ содержит общие регистры 1, запоминающие устройства 2, указатель стека 3, ключи 4 и ключи 5. Выходы 19 регистров 1 соединены с информационными входами 20 соответствующего запоминающего устройства 2, а информационные входы 23 регистров 1 - с выходами 21 соответствующего ключа 4 и выходами 22 соответствующего ключа 5. Информационные входы 26 ключей 4 подключены к первому входу 18 устройства, а информационные входы 6 ключей 5 - к выходам 7 соответствующего запоминающего устройства 2. Адресные входы 8 всех запоминающих устройств 2 подключены к выходам 9 указателя стека 3. Первый вход 10 указателя стека 3 соединен с открывающим входом 24 всех ключей 4 и через элемент задержки 11 - с первыми управляющими входами 13 всех запоминающих устройств 2 и со вторым входом 12 устройства, а второй вход 16 указателя стека 3 - с третьим входом 17 устройства и через второй элемент задержки 15 - со вторыми управляющими входами 14 всех запоминающих устройств 2 и с открывающими входами 25 всех ключей 5.
Устройство переключения программ работает следующим образом.
По сигналу прерывания, поступающему от устройства управления процессора на второй вход 12 устройства, производится запоминание состояния прерываемой программы путем одновременной передачи содержимого всех регистров 1 через информационные входы 20 в ячейки памяти запоминающих устройств 2, адрес которых определяется кодом адреса, поступившим на адресные входы 8 с выходов 9 указателя стека 3 (запись в вершину стека). Этот же сигнал со второго входа 12 через первый элемент задержки 11 (время задержки элемента задержки 11 устанавливается заранее равным времени записи информации в запоминающее устройство 2) поступает на первый вход 10 указателя стека 3 и увеличивает его содержимое на единицу, формируя тем самым в указателе стека 3 код адреса следующей свободной ячейки памяти запоминающих устройств 2. Этот же сигнал с выхода элемента задержки 11 поступает на вход 24 ключей 4, тем самым открывая их. В результате этого в общие регистры процессора будет загружен вектор прерывания путем одновременной передачи содержимого, поступающего с первых входов 18 устройства через информационные входы 26 и информационные выходы 21 ключей 4 в регистры 1 через информационные входы 23 регистров 1. Новое содержимое регистров 1 будет использоваться процессором для перехода к прерывающей программе. При поступлении следующих сигналов прерывания устройство работает аналогично.
Прерывающая программа должна заканчиваться командой "Восстановить", по которой устройство управления процессора формирует сигнал восстановления. Этот сигнал через третий вход 17 устройства поступает на второй вход 16 указателя стека 3 и уменьшает его содержимое на единицу, формируя тем самым на выходах 9 код адреса последней занятой ячейки памяти, который поступает на адресные входы 8 всех запоминающих устройств 2.
Этот же сигнал с третьего выхода 17 устройства через второй элемент задержки 15 (время задержки элемента задержки устанавливается заранее равным времени переключения в новое состояние указателя стека 3) поступает на вторые управляющие входы 14 всех запоминающих устройств 2 и на открывающие входы 25 всех ключей 5, в результате чего содержимое выбранных ячеек памяти с информационных выходов 7 запоминающих устройств 2 поступит на информационные входы 6 соответствующих ключей 5 и через открытые ключи 5 с информационных выходов 22 ключей 5 на информационные входы 23 регистров 1. В результате этого в общих регистрах будет восстановлено состояние прерванной программы и процессор продолжит ее выполнение. При выполнении других сигналов восстановления устройство работает аналогично.
Таким образом, в предлагаемом устройстве и запоминание и восстановление содержимого регистров процессора производится одновременно, что и позволяет уменьшить время переключения программ. Кроме того, для возврата к прерванной программе прерывающая программа должна выполнить только одну команду.
Предположим, что время запоминания содержимого одного регистра t равно времени восстановления его содержимого. Тогда время переключения программ в устройстве- прототипе будет равно t1=2nt, где n - количество общих регистров процессора. В предлагаемом устройстве время переключения программ не зависит от количества регистров и равно величине t2=2t. Следовательно, предлагаемое устройство позволяет в =t1/t2=n раз уменьшить время переключения программ.
Кроме того, для устройства-прототипа прерывающая программа для переключения программ должна содержать n команд запоминания и n команд восстановления. Для предлагаемого устройства прерывающая программа должна содержать лишь одну команду восстановления. Следовательно, прерывающая программа может быть уменьшена на 2n-1 команду. Все это позволяет в конечном счете уменьшить время реакции ЭВМ на запросы прерывания. Таким образом, цель изобретения достигнута.
Литература
1. Б.М.Каган. Электронные вычислительные машины и системы: Учебн. пособие, 3-е изд., перераб и доп. - М.: Энергоатомиздат, 1991, рис.9.32.
2. Электронные вычислительные машины и системы: Учебник. /Под ред В.А.Смагина. - МО РФ, 1998, рис.3.13.
Класс G06F9/48 инициирование программы; переключение программы, например, прерыванием
Класс G06F9/28 увеличение операционной скорости, например с помощью нескольких устройств микроуправления, работающих параллельно