Изобретение относится к цифровой вычислительной технике и может быть использовано в вычислительных устройствах, построенных по принципу общей магистрали.
Известно устройство для контроля электронной вычислительной машины (ЭВМ), содержащее объединенные между собой группой однонаправленных и двунаправленных связей интерфейсный блок, блок анализа информации, блок выдачи тестовых сигналов и блок управления (Патент США N 3810120, кл. 340-172.5, 1974).
В процессе работы ЭВМ это устройство периодически проверяет ее работоспособность и, если это возможно, локализует и логически изолирует отказавший блок. При этом время между проявлением отказа и его обнаружением может оказаться достаточно большим (равным времени между проверками), что в ряде случаев недопустимо. С другой стороны, увеличение частоты проверок снижает производительность ЭВМ, так как все большая часть машинного времени расходуется и на выполнение контрольных, а не "полезных" операций.
Известно устройство для контроля ЭВМ, содержащее блок счетчиков, дешифратор, два триггера, два элемента ИЛИ, два элемента И, элемент И-НЕ, элемент ИЛИ-НЕ, два формирователя импульсов и элемент задержки.
В процессе работы ЭВМ одновременно с выбором очередной команды из памяти программ из дополнительной памяти извлекается константа, отличная от нуля или равная нулю. Первый случай соответствует выходу процессора на очередной линейный участок программы, второй выбору последующих команд данного линейного участка. Извлеченная из памяти константа является набором малоразрядных эталонных чисел, прогнозирующих число ожидаемых сигналов на управляющих линиях интерфейса при обработке процессором данного линейного участка программы. При этом возникает невозможность обнаружения ошибки в случаях потери бита в памяти, сбоя в линии связи и т.п. так как в процессор может вместо команды сложения поступить команда вычитания, а обе эти команды сопровождаются одной и той же последовательностью управляющих сигналов на интерфейсных линиях (Авторское свидетельство СССР N 984332, кл. G 05 F 11/00).
Наиболее близким по технической сущности к предлагаемому является устройство для контроля ЭВМ, содержащее блок счетчиков, дешифратор, пять триггеров, три элемента И, два элемента ИЛИ, элемент И-НЕ, элемент ИЛИ-НЕ, два формирователя импульсов, два элемента задержки, два регистра и схему сравнения, первый и второй входы которой подключены к выходам соответственно первого и второго регистров, информационные входы первого и второго регистров соединены соответственно с дополнительным информационным входом-выходом и информационным входом-выходом устройства, синхровходы первого и второго регистров, третьего и четвертого триггеров, установочные входы третьего, четвертого и пятого триггеров, выход первого элемента задержки подключены к управляющему входу-выходу устройства, вход элемента задержки соединен с выходом первого элемента ИЛИ, а выход элемента задержки подключен к первому входу второго элемента ИЛИ, управляющему входу дешифратора и группе счетных входов блока счетчиков, вход дешифратора соединен с адресным входом-выходом устройства, а выход дешифратора подключен к входу первого элемента ИЛИ, второму входу второго элемента ИЛИ, входу первого формирователя импульсов и входу выдачи информации блока счетчиков, вход запрета счета, первый и второй входы приема информации, информационные входы, группа входов-выходов и выходы блока счетчиков соединены соответственно с выходами элемента И-НЕ, второго и первого формирователя импульсов, дополнительным информационным входом-выходом устройства, информационным входом-выходом устройства и входами элемента ИЛИ-НЕ, выход которого подключен к первому входу первого элемента И и информационному входу первого триггера, информационные входы третьего и четвертого триггеров соединены с общей шиной устройства, первый и второй входы и выход третьего элемента И подключены соответственно к выходам третьего и четвертого триггеров и входу второго элемента задержки, при этом информационный вход, синхровход и выход пятого триггера соединены соответственно с выходами схемы сравнения и второго элемента задержки и вторым входом второго элемента И, выход которого соединен с вторым входом первого элемента И и синхровходом первого триггера, установочный вход и инверсный выход которого подключены соответственно к выходу дешифратора и первому входу элемента И-НЕ, первый и второй входы и выход второго триггера соединены соответственно с выходами дешифратора и второго элемента ИЛИ и вторым входом элемента И-НЕ, выход первого элемента И подключен к входу второго формирователя импульсов, а выход элемента И-НЕ cоединен с первым входом второго элемента И. (Авторское свидетельство СССР по заявке N 1019451, кл. G 06 F 11/00, прототип).
В процессе работы ЭВМ осуществляется разбитие программы на отдельные линейные участки, детерминируется "поведение" ЭВМ при прохождении этих участков, регистрируется строго определенное количество импульсов, заранее известное для данного линейного участка.
Устройство позволяет контролировать выполнение всех операций на линейном участке. Используется стековый механизм заполнения и восстановления в связи с реакцией на прерывания.
Недостатком данного устройства является невозможность обнаружения ошибки перехода. Например, если в результате сбоя в линии связи либо в согласующем блоке и т.п. в процессор вместо одной команды управления условного или безусловного характера поступает другая, допускающая исключение из работы некоторого участка программы, то эта ошибка не будет обнаружена, так как устройство контроля, предложенное в (Авторское свидетельство СССР N 1019451, кл. G 06 F 11/00, прототип), не контролирует правильность выполнений условий переходов.
Цель изобретения увеличение достоверности контроля. Поставленная цель достигается тем, что в устройство для контроля ЭВМ, содержащее блок счетчиков, дешифратор, пять триггеров, три элемента И, два элемента ИЛИ, элемент И-НЕ, элемент ИЛИ-НЕ, два формирователя импульсов, два элемента задержки, два регистра и схему сравнения, первый и второй входы которой подключены к выходам соответственно первого и второго регистров, информационные входы первого и второго регистров соединены соответственно с дополнительным информационным входом-выходом и информационным входом-выходом устройства, синхровходы первого и второго регистров, третьего и четвертого триггеров, установочные входы третьего, четвертого и пятого триггеров и выход первого элемента задержки подключены к управляющему входу-выходу устройства, вход первого элемента задержки соединен с выходом первого элемента ИЛИ, а выход элемента задержки через управляющий вход-выход устройства подключен к первому входу второго элемента ИЛИ, управляющему входу дешифратора и группе счетных входов блока счетчиков, вход дешифратора соединен с адресным входом-выходом устройства, а выходы дешифратора подключен к входам первого элемента ИЛИ, соответствующие разрядные выходы дешифратора подключены к второму входу второго элемента ИЛИ, входу первого формирователя импульсов и входу выдачи информации блока счетчиков, вход запрета счета, первый и второй входы приема информации, информационные входы, группа входов-выходов и выходы блока счетчиков соединены соответственно с выходами элемента И-НЕ, второго и первого формирователя импульсов, дополнительным информационным входом-выходом устройства, информационным входом-выходом устройства и входами элемента ИЛИ-НЕ, выход которого подключен к первому входу первого элемента И и информационному входу первого триггера, информационные входы третьего и четвертого триггеров соединены общей шиной устройства, первый и второй входы и выход третьего элемента И подключены соответственно к выходам третьего и четвертого триггеров и входу второго элемента задержки, при этом информационный вход, синхровход и выход пятого триггера соединены соответственно с выходами схемы сравнения и второго элемента задержки, вторым входом второго элемента И, выход которого соединен с вторым входом первого элемента И и синхровходом первого триггера, установочный вход и инверсный выход которого подключены соответственно к выходу дешифратора и первому входу элемента И-НЕ, первый и второй входы и выход второго триггера соединены соответственно с выходами дешифратора и второго элемента ИЛИ и вторым входом элемента И-НЕ, выход первого элемента И подключен к входу второго формирователя импульсов, а выход элемента И-НЕ cоединен с первым входом второго элемента И и выходом устройства, введен блок контроля "разветвлений", содержащий шестой триггер, четвертый, пятый, шестой элементы И, восемь групп по шестнадцать элементов И, в каждой третий и четвертый регистры, блок выдачи сигнала прерывания, третий, четвертый, пятый, шестой, седьмой, восьмой и девятый элементы ИЛИ, группу из шестнадцати элементов ИЛИ, вторую схему сравнения, первые входы которой подключены к выходам группы элементов ИЛИ, вторые и третье входы соединены соответственно с управляющими, дополнительными и информационными входами-выходами устройства, выход второй схемы сравнения подключен к входу блока выдачи сигнала прерывания, второй и третий входы которого соединены соответственно с выходами элемента И-НЕ и второго триггера, выход блока выдачи сигнала прерывания является выходом блока контроля "разветвлений", первые и вторые входы группы элементов ИЛИ соединены с выходами соответственно третьей и четвертой групп элементов И, на первые входы третьей и четвертой групп элементов И подключены выходы пятого и шестого элементов И, а вторые входы соединены с выходами соответственно третьего и четвертого регистров и с первыми входами передающих шестой и восьмой групп элементов И, вторые входы которых подключены к управляющим входам-выходам устройства, а выходы шестой и восьмой групп элементов И соединены с информационными входами-выходами устройства, входы третьего и четвертого регистров подключены к выходам соответственно восьмого и шестого, седьмого и девятого элементов ИЛИ, входы шестого, седьмого, восьмого и девятого элементов ИЛИ подключены к выходу соответственно приемных пятой и седьмой групп элементов И, первые входы которых соединены с управляющим входом-выходом устройства, а вторые входы и входы восьмого и девятого элементов ИЛИ с информационными входами-выходами устройства, входы шестого и седьмого элементов ИЛИ подключены также к выходу первой и второй групп элементов И, вторые входы которых подключены к адресному входу-выходу устройства, первые входы соединены с выходами шестого триггера прямым и инверсным для первой и второй групп элементов И соответственно, третьи входы первой и второй групп элементов И подключены к выходу пятого элемента ИЛИ, входы которого соединены с выходом первой схемы сравнения и выходом первого триггера, четвертые входы первой и второй групп элементов И подключены к выходу блока выдачи сигнала прерывания, прямой выход шестого триггера соединен с первым входом передающего четвертого элемента И, второй вход которого соединен с управляющим входом-выходом устройства, а выход с информационным входом-выходом устройства, вход шестого триггера подключен к выходу четвертого элемента ИЛИ, первый вход которого соединен с выходом третьего элемента ИЛИ, а второй вход с информационным входом-выходом устройства, вход третьего элемента ИЛИ подключен к адресному входу-выходу устройства.
На фиг.1 представлена функциональная схема ЭВМ, показывающая назначение предлагаемого устройства для контроля; на фиг.2 представлена общая функциональная схема устройства для контроля ЭВМ; на фиг.3 функциональная схема устройства для контроля "разветвлений"; на фиг.4 функциональная схема сравнения; на фиг.5 функциональная схема сравнивающей ячейки; на фиг.6 - функциональная схема блока выдачи сигнала прерывания; на фиг.7 временная диаграмма работы блока устройства для контроля "разветвлений".
ЭВМ (фиг. 1) содержит процессор 1, устройство для контроля 2, состоящее из двух блоков, блок 3 сопряжения, блок 4 памяти, включающий в себя память 5 данных и память 6 программ, блок 7 преобразования адресов и дополнительный блок 8 памяти.
Блоки 3, 5, 7 и 8 объединены посредством группы шин 9, включающих в себя адресные 10, информационные 11 и управляющие 12. Выходы 13 блока 8 соединены с входами 14 блока 3 посредством информационных шин 15. Процессор 1 соединен с устройством 2 и блоком 3 посредством группы шин 16, включающий в себя адресные 17, информационные 18 и управляющие 19. Устройство 2 и блок 3 соединены также посредством группы дополнительных информационных шин 20. Выход устройства 2 соединен с входом прерывания процессора 1 посредством шины 21. Выходы блока 7 соединены с адресными входами блока 8 посредством шин 22.
Устройство 2 для контроля (фиг.2) содержит блок 23 счетчиков, дешифратор 24, триггеры 25-29, элементы 30, 31 ИЛИ, элементы И 32-34, элемент И-НЕ 35, формирователи 36 и 37 импульсов, элементы 38 и 39 задержки, регистры 40 и 41, схему сравнения 42 и элемент ИЛИ-НЕ 43, блок контроля "разветвлений" 44.
Адресные шины 17 устройства 2 соединены через дешифратор 24 с входами элемента ИЛИ 30, с первым входом элемента ИЛИ 31, с входами 45, 46 блока 44 контроля "разветвлений", с установочными входами триггеров 25 и 26, с входом формирователя 36, с входом 47 выдачи информации блока 23 счетчиков и с входом 48 блока 44 контроля "разветвлений". Информационные шины 18 устройства 2 соединены с группой 49 входов-выходов блока 23, с входами регистра 41 и с группой 50 входов-выходов блока 44. Управляющие шины 19 устройства 2 соединены с группой 51 и 52 счетных входов блоков 23 и 44 соответственно, с управляющим входом дешифратора 24, с выходом элемента 38, с вторым входом элемента ИЛИ 31, синхровходами регистров 40 и 41, установочными входами триггеров 27 и 28, с синхровходами этих триггеров, с входом сброса триггера 29.
Входы устройства 2, подключенные к шине 20, соединены с информационными входами 53 блока 23, с входами регистра 40 и с входами 54 блока 44 контроля "разветвлений". Выходы 55 блока 23 соединены с входами элемента ИЛИ-НЕ 43, выход которого соединен с информационным входом триггера 25 и с первым входом элемента И 32. Выход элемента И 32 через формирователь 37 соединен с входами 56 и 57 приема информации блока 23 счетчиков и блока 44 контроля "разветвлений" соответственно. Второй вход элемента И 32 соединен с выходом элемента И 33 и с синхровходом триггера 25, нулевой выход которого соединен с первым входом элемента И-НЕ 35, второй вход которого соединен с выходом триггера 26, который соединен с входом 58 блока 44. Вход сброса триггера 26 соединен с выходом элемента ИЛИ 31. Выход элемента И-НЕ 35 cоединен с входом 59 блока 44, с входом 60 запрета счетчика блока 23 и с первым входом элемента И 33. Выход формирователя 36 соединен с входами 61 и 62 приема информации блока 23 и блока 44 соответственно. Выход элемента 30 соединен с входом элемента 38. Выходы регистров 40 и 41 соединены с входами схемы 42, выход которой соединен с входом 63 блока 44 и с информационными входами триггера 29, выход которого соединен с вторым входом элемента И 33 и с входом 64 блока 44. Выходы триггеров 27 и 28 соединены с входами элемента И 34, выход которого через элемент 39 соединен с синхровходом триггера 29. Информационные входы триггеров 27 и 28 подключены к общей шине 65.
Блок 44 контроля "разветвлений" (фиг.3) содержит схему 66 сравнения, блок 67 выдачи сигнала прерывания, триггер 68, элемент И 69, четыре группы 70 элементов И, две группы 71 элементов И, два элемента И 74, две группы 72 элементов И и две группы 73 элементов И, элемент ИЛИ 75, группу 76 элементов ИЛИ, два регистра 77, элемент ИЛИ 78, элемент ИЛИ 107, два элемента ИЛИ 108, два элемента ИЛИ 109. Первый вход схемы 66 сравнения является входом 57 блока 44, второй вход управляющий вход 52 блока 44, третий вход информационный вход 54 блока 44, четвертый вход вход 46 блока 44, шестой вход 79 соединен с выходом группы 76 элементов ИЛИ, выход схемы 66 сравнения соединен с входом 80 блока 67 выдачи сигнала прерывания, второй и третий входы которого являются входами 58 и 59 соответственно блока 44, выход блока 67 является выходом устройства 2 для контроля, который соединен с первыми входами групп 72 элементов И, входы группы 76 элементов ИЛИ соединены с выходами групп 73 элементов И, один вход которых соединен с выходами элементов И 74, а другие с выходами регистров 77, и с первыми входами передающих групп 71 элементов И, вторые входы которых объединены и являются входами 45 блока 44, выходы групп 71 подключены к информационным входам-выходам 50 блока 44, первые входы регистров 77 соединены с выходами монтажных элементов ИЛИ 108, а вторые входы с выходами элементов ИЛИ 109, входы которых cоединены с входом 62 блока 44, входы элементов ИЛИ 108 соединены с выходами групп 72 элементов И и выходами приемных групп 70 элементов И, первые входы которых объединены и являются входом 62 блока 44, а вторые входы подключены к входам-выходам 50 блока 44.
Вторые входы групп 72 элементов И подключены к адресному входу 43 блока 44, третьи и четвертые входы групп 72 элементов И соединены соответственно с выходами триггера 63 и выходом элемента ИЛИ 78, входами которого являются входы 63 и 64 блока 44, выходы триггера 68 соединены с вторыми входами элементов И 74, с первыми входами элементов И 74 соединен выход элемента И 78, прямой выход триггера 68 соединен с первым входом передающего элемента И 69, второй вход которого является входом 45 блока 44, а выход подключен к информационному входу-выходу 50, вход триггера 68 соединен с выходом монтажного элемента ИЛИ 107, входы которого подключены к входу 62 блока 44 и к выходу элемента ИЛИ 75, входы которого подключены к адресному входу блока 44.
Cхема 66 сравнения (фиг.4) содержит регистр 81 ассоциативного поиска, триггеры 82, элементы И 83, сравнивающие ячейки 84, элементы И 85, элементы ИЛИ 86, 87. Выходы регистра 81 соединены с входами 89 сравнивающих ячеек 84, входы 88 которых соединены с выходами триггеров 82, счетные входы которых объединены и являются счетным входом 52 блока 44, информационные входы триггеров 82 соединены с выходами элементов И 83, входы которых подключены к дополнительному информационному входу 54 и управляющему входу 57 блока 44, входы сброса триггеров 82 и регистра 81 соединены с выходом элемента ИЛИ 87, входы которого являются входами 46 и 57 блока 44, выходы сравнивающих ячеек 84 соединены с входами элементов И 85, выходы которых соединены с входами элемента ИЛИ 86, выход которого является выходом схемы 66 сравнения.
Cравнивающая ячейка 84 (фиг.5) содержит элемент ИЛИ 92, вход которого соединен с выходом элемента И 90 и с выходом элемента ИЛИ-НЕ 91, первые и вторые входы элементов И 90 и ИЛИ-НЕ 91 объединены соответственно и являются входами 88 и 89 сравнивающей ячейки 84.
Блок 67 выдачи сигнала прерывания (фиг.6) содержит элемент ИЛИ 93, элемент И 94, первый вход элемента И 94 является входом 59 блока 44 контроля "разветвлений", а второй вход соединен с выходом элемента ИЛИ 93, первый вход которого является входом 58 блока 44, а второй является входом 80 блока 67 выдачи сигнала прерывания.
На временной диаграмме работы блока контроля "разветвлений" (фиг.7) показана эпюра 95, отображающая сигналы на синхронизирующем входе триггера 25, по оси 96 импульсы записи эталонной информации, соответствует моментам выхода программы на начало линейного участка, по оси 97 импульсы прихода информации из адресной шины 17. Моменты времени 98-100 cоответствуют моментам переключения триггера 68 или записи информации в регистры 77 в внесение информации в регистр 81 ассоциативного поиска, по осям 101-102 импульсы записи и считывания информации из регистров 77 поканально. Моменты времени 103-105 соответствуют моменту срабатывания схемы сравнения 66 ("+" совпадение, "-" - несовпадение), эпюра 106 соответствует сигналу на выходе 21 устройства.
Рассмотрим построение системы контроля ЭВМ.
Выполнение линейных участков программы осуществляется последовательно в соответствии с командами начала включения в работу линейных участков.
Возникает необходимость прерывания выполнения программы и возврата к исходному линейному участку. Таким образом, кроме данных количества импульсов на интерфейсных управляющих шинах необходимо учитывать адреса интерфейсных управляющих сигналов, которыми сопровождается выполнение команд условных переходов. Иначе говоря, должны анализироваться адреса начальных команд линейных участков программы (точек вхождения). При несовпадении исходной и программной информации устройство контроля выдает сигнал прерывания, обеспечивающий временную остановку решения данного и переход к исходному (выполняющемуся до этого) линейному участку.
Принцип работы устройства контроля:
1. В процессе трансляции исходной программы на языке машинных команд (или после трансляции) рабочая программа анализируется с целью выявления всех линейных участков. Список адресов начальных команд линейных участков запоминается.
2. Для каждого линейного участка "предсказывается" число импульсов на тех или иных интерфейсных управляющих линиях путем последовательного арифметического сложения некоторых констант, каждая из которых соответствует "своей" команде и зависит от конструктивных особенностей конкретной ЭВМ. В результате подсчета, например, определяется, что при полном и безошибочном прохождении линейного участка А на интерфейсных управляющих линиях Х1, Х2, Х3 должно появиться соответственно 64, 47 и 22 импульса. Эта информация запоминается и в дальнейшем используется для контроля прохождения участка А при выходе на его начало. Кроме "предсказывания" числа импульсов для каждого линейного участка выявляются адреса команд, управляющих переходом от одного линейного участка к другому условно или безусловно. Эта информация запоминается и в дальнейшем используется для контроля вхождения в линейный участок.
3. Производится пуск рабочей программы. Правильность ее выполнения контролируется специальными аппаратными средствами. Одновременно с выбором из основной памяти начальной команды некоторого линейного участка из дополнительной памяти вызывается служебная информация, определяющая совпадение одного из возможных адресов точек вхождения в данный линейный участок с поступившей из адресной шины информацией о выполненной перед этим команде, а также определяющая ожидаемое число импульсов на интерфейсных шинах управления. Эта информация помещается в счетчики, содержимое которых в дальнейшем уменьшается по мере отработки данного участка программы. К моменту перехода на начало нового линейного участка содержимое всех счетчиков проверяется на равенство нулю и, если это условие выполнено, счетчики загружаются новой информацией, соответствующей новому линейному участку программы.
4. Если выбираемая из основной памяти команда не является начальной командой, то из дополнительной памяти выбирается копия этой команды и проверяется на совпадение с командой из основной памяти.
5. При правильной работе ЭВМ выход на начало очередного линейного участка сопровождается несовпадением информации, выбираемой из основной и дополнительной памяти, так как из основной памяти выбирается команда, а из дополнительной новое содержимое счетчиков.
6. Если к моменту проверки счетчиков их содержимое не равно нулю, то в процессор посылается сигнал прерывания, препятствующий дальнейшему выполнению рабочей программы и вызывающий переход на заранее запланированный режим управления объектом, подключенным к ЭВМ.
7. При совпадении одного из возможных точек вхождения в данный линейный участок, поступившего из памяти с информацией о выполненной перед этим команде, выдается единичный сигнал. В противном случае с выхода устройства поступит нулевой сигнал, соответствующий сигналу прерывания. Он препятствует дальнейшему выполнению рабочей программы и также вызывает переход на заранее запланированный режим управления объектом, подключенным к ЭВМ. Таким образом уменьшается вероятность возникновения сбоев при решении программы, которые могут возникать по различным причинам.
Время между возникновением сбоя и его обнаружением не превышает времени работы предлагаемого устройства по сравниванию информации и может составлять несколько мкс.
Устройство работает следующим образом.
ЭВМ приводится в исходное состояние путем подачи логической единицы в линию "Общий сброс", входящую в состав шин 12 и 19. Сигнал на этой линии формируется автоматически после включения соответствующей кнопки на пульте управления.
Cигнал "Общий сброс" приводит в исходное состояние процессор 1, управляющую часть памяти 5,6 и 8, соответственно, схему 66 сравнения, а также запрещает выдачу сигнала прерывания из устройства 2 в процессор 1 по линии 21 и настраивает блок 7 таким образом, что адреса памяти 6 и памяти 8 не совпадают.
Запрет выдачи сигнала прерывания производится следующим образом. Сигнал "Общий сброс" поступает с шины 19 (фиг.2) на вход элемента ИЛИ 31, а с его выхода на вход сброса триггера 26. Нулевой сигнал с выхода триггера 26 запирает элемент И-НЕ 35, в результате чего сигнал на выходе этого элемента принимает единичное значение, кроме того, нулевой сигнал с выхода триггера 26 поступает на вход элемента ИЛИ 93 (фиг.5), с выхода этого элемента единичный сигнал поступает на элемент И 94 блока выдачи 67 сигнала прерывания (фиг. 6) и запрещает выдачу сигнала прерывания с выхода элемента ИЛИ 93 (при условии запрета). На выходе элемента ИЛИ 93 сигнал принимает единичное значение и, поступая на первый вход элемента И 94, совместно с сигналом, поступающим на второй вход 59 элемента И 94, открывает этот элемент, на выходе которого сигнал принимает значение "1", что соответствует отсутствию прерывания.
Cигнал "Общий сброс" приводит в исходное положение схему 66 сравнения через вход 46.
Настройка блока 7 на разделение адресов памяти 6 и памяти 8 производится при поступлении сигнала "Общий сброс" с шины 18 (фиг.8) по линии 116 на вход элемента ИЛИ 111, а с его выхода на вход сброса триггера 113. "Единичный" сигнал с нулевого выхода этого триггера по линии 119 поступает на первый вход элемента 114 исключающее ИЛИ, который при этом можно рассматривать как инвертор, включенный между линиями 80 и 81. Таким образом, адресные коды, поступающие в дальнейшем с шины 10, поступают на шину 22 с инвертированием старшего разряда. Это приводит к разделению адресов.
При работе ЭВМ возникает необходимость совмещения адресных пространств, покрываемых блоками 6 и 8 памяти. Для этого триггер 113 (фиг.8) переключается по цепи 10-110-117 в противоположное состояние, в результате чего элемент 114 передает старший разряд адреса на шину 22 без искажения. В этом случае адреса памяти 6 и памяти 8 совпадают и операции обмена выполняются в них синхронно. Будем считать, что память 6 и память 8 содержат как постоянную, так и оперативную части. После окончания сигнала "Общий сброс" процессор автоматически переходит к выполнению программы, записанной в постоянной части памяти 6. Такой программой может быть программа-загрузчик, под управлением которой информация вводится в ЭВМ и размещается в оперативной части памяти 6. Вводимые данные размещаются в памяти 5. Вводимая в память 6 программа представлена в виде последовательности машинных кодов, т.е. ввод может сопровождаться вводом заранее подготовленного массива вспомогательной информации в дополнительную память 8 (адресные пространства, занимаемые блоками 6 и 8 памяти, на этапе ввода не совпадают). Если вспомогательная информация отсутствует, то она формируется самой ЭВМ при работе специальной программы выделения линейных участков.
Программа выделения линейных участков выполняется следующим образом.
Во все ячейки (100000-1377778) памяти 8 процессор 1 последовательно записывает копии кодов, расположенных в памяти 6. Последовательно анализируя рабочую программу, записанную в память 6 в машинных кодах, процессор 1 определяет адрес начала А'н и адрес конца А'к очередного (i-го) линейного участка рабочей программы и подсчитывает число импульсов n'х1, n'x2, nхn, которые формируются на линиях Х1, Х2, Хn шины 19 при непрерывной работе ЭВМ на i-ом линейном участке. Код n'х1, n'х2, n'хn записывается в память 8 по адресу, смещенному относительно адреса А'н на 32К. Компоненты этого кода n'xj (j 1,2, n) загружаются в n счетчиков 23 (фиг.2) при выходе ЭВМ на начало j-го линейного участка. Таким образом, после окончания рабочей программы выделения линейных участков в памяти 8 формируется следующая информация: если адрес ячейки памяти равен увеличенному на 32К адресу начала какого-либо линейного участка рабочей программы, то в этой ячейке хранится код для последующей загрузки счетчиков 23 при выходе ЭВМ на начало этого участка; если адрес ячейки памяти не удовлетворяет указанному условию, то в этой ячейке записана копия кода, расположенного в соответствующей ячейке памяти 6.
В дальнейшем, при совмещении адресных пространств, занимаемых блоками 6 и 8, программная и вспомогательная информация извлекается из этих блоков синхронно, поэтому признаком начала очередного линейного участка рабочей программы является появление несовпадения информации на выходах блоков 6 и 8 при обращении к ним.
После того как массив информации в дополнительной памяти 8 сформирован, управление передается на начало рабочей программы путем выполнения следующей переходной программы (пп.1-4).
1. "Совместить адресные пространства, покрываемые блоками 6 и 8". Эта команда представляет собой обычную команду пересылки данных из регистра процессора в память. Данные могут быть любыми, так как они не используются, а в качестве адреса памяти указывается адрес, на который дешифратор 110 (фиг.8) реагирует выдачей сигнала на выход 177. Сигнал стробирования дешифратора 110, поступающий по линии 25 шины 12, является интерфейсным сигналом подтверждения истинности адреса, установленного на шине 10 и вырабатывается процессором. Под действием сигнала с выхода 117 дешифратора 110, во-первых, формируется ответный сигнал на выходе элемента ИЛИ 112 для оповещения процессора 1 о завершении операции записи (процессор 1 по получении этого сигнала освобождает шины 16 и 9), и, во-вторых, триггер 113 переводится в состояние, при котором на входе 119 элемента 114 постоянно поддерживается сигнал "логического нуля", в результате чего старший разряд адреса с линии 120 поступает на линию 121 без инвертирования. Начиная с этого момента времени, "с точки зрения" процессора 1, адреса блоков 6 и 8 памяти совпадают и лежат в пределах 000000-037777, причем информация об ожидаемом числе импульсов на интерфейсных линиях (блок 8) точно "подстыкована" по адресам к соответствующим начальным командам линейных участков рабочей программы (блок 6).
2. "Загрузить счетчики 23 с шины данных". Эта команда, также как и предыдущая, является командой пересылки по заданному адресу содержимого одного из регистров процессора, в котором предварительно подготовлен код для загрузки счетчиков. Этот код выбирается таким, чтобы к моменту выбора из памяти 6 команды 3 содержимое счетчиков 23, работающих в режиме вычитания (подсчета сигналов на линиях шины 19), было равно нулю. Адрес записи "опознается" дешифратором 24 при стробировании по управляющему входу сигналом подтверждения истинности адреса, в результате чего срабатывает формирователь 36 и информация с шины 18 записывается в счетчики 23. Ответный сигнал об окончании операции посылается в процессор по цепи 30-38-19-1.
3. "Перевести триггер 26 в состояние, разрешающее выдачу сигнала прерывания в линию 21". По этой команде из памяти 8 по цепи 8-13-15-14-3-20-2 (фиг.1) производится выбор информации для запоминания в регистре 40 и в регистре 81 ассоциативного поиска. Одновременно с 3, так как она является начальной, из памяти 6 по цепи 6-11-3-18-1 выбирается команда, адрес которой с адресной шины 17 записывается в регистре 77 по цепи 17-48-72-108-77 и запоминается там. Канал записи зависит от состояния выходов триггера 68. В одном из регистров 77 хранится предыдущая, а в другом исполняемая команда программы (фиг.3). Так как коды в регистрах 40 и 41 (фиг.2) не совпадают, на выходе схемы сравнения 42 сформирована "логическая единица". Она позволяет произвести сравнение в ячейках 84, на входы которых подается информация из регистра 81 ассоциативного поиска и эталонная информация из триггера 82 (фиг. 4). С выходов ячеек 84 на элементы И 85 поступают единичные сигналы, с выходов которых значения "1" поступают на вход элемента ИЛИ 86, сигнал с выхода которого сохраняет сигнал "отсутствие прерывания".
4. "Перевести управление на начало рабочей программы". Управление передается первой команде рабочей программы, которая помечена в памяти 8 как начальная. Таким образом, переходная программа обеспечивает вхождение в синхронизм механизма выполнения рабочей программы с механизмом контроля.
В отсутствие внешних прерываний рассмотренный цикл работы устройства 2 периодически повторяется. При выборе начальной команды очередного линейного участка устанавливается в "единицу" триггер 29, срабатывают элементы И 33 (фиг. 2), И 74 (фиг.3), триггер 25 принимает информацию о правильности выполнения работы ЭВМ на предыдущем линейном участке, а сигнал по 32-37-56 и 32-37-57-83 вызывает прием эталонной информации с шины 20 в счетчики блока 23 (фиг. 2) и триггеры 82 схемы сравнения 66 (фиг.4), предопределяя работу ЭВМ на очередном линейном участке рабочей программы и т.д.
При поступлении сигнала внешнего прерывания по одной из линий шины 19 процессор 1 завершает выполнение текущей команды и приступает к выполнению стандартной процедуры перехода к прерывающей программе. Эта процедура обычно выполняется на микропрограммном уровне и предусматривает, в частности, "упрятывание" в память (например, в аппаратно реализованный стек) всей информации, необходимой для последующего возобновления работы по программе с прерванного места. К этой информации, в частности, относится содержание счетчиков 23, а также содержание регистров 77 и состояние прямого выхода триггера 68. Чтение из регистров и триггера производится при обращении по определенному адресу, который определяется дешифратором 24. Сигнал с его выхода поступает на вход 45 блока 44, открывая передающие группы 71 элементов И, в результате чего информация с выходов ячеек 71 поступает на входы-выходы 50 блока 44 (фиг.3), а затем в процессор 1. Ответный сигнал завершения операции формируется по цепи: 30-38-19-1 (фиг.2). При работе прерывающей программы используются те же аппаратные средства контроля, что и при выполнении исходной (рабочей) программы.
Выход из прерывающей программы, как обычно, сопровождается восстановлением всей необходимой информации, в частности, это может быть содержимое счетчиков блока 23, содержимое регистров 77, состояние триггера 68.
Запись в регистры 77 информации производится с шины 18 при срабатывании управляющей цепи: 17-24-36-62 (фиг.2) и далее по цепи: 70-108-77, независимо от значения управляющего разряда на выходе триггера 68 (фиг.3), который сбрасывается в предыдущее состояние. Далее управление передается прерванной программе. При обнаружении ошибки на вход элементов И 85 подается нулевой сигнал, с выхода этих элементов сигнал прерывания подается на блок 67 выдачи сигнала прерывания; если триггер 26 находится в разрешающем, т. е. в "единичном" состоянии, то на выходе блока 67 формируется сигнал "логического нуля". Отрицательный фронт сигнала с выхода этого блока запирает группы 72 элементов И, элемент И 94, с выхода этого элемента в линию 21 выдается сигнал прерывания. Он поступает в процессор 1 и воспринимается последним как сигнал прерывания устройства 2. В регистрах 77 записанная информация не разрушится, она может быть прочитана по шине 18 и использована для анализа причины ошибки. Возврат к прерванной (в связи с ошибкой) программе может производиться, начиная с некоторой точки повтора, помеченной как начало в памяти 8. Для входа в эту программу может быть использована уже вышеописанная переходная программа по (Авторское свидетельство СССР N 1019451, кл. G 06 11/00, прототип).
Работа устройства поясняется временной диаграммой (фиг.7), на которой эпюра 95 отражает формирование импульсов в момент выхода программы на начало линейного участка: в результате происходит запись эталонной информации в триггеры 82 схемы сравнения 66, через промежуток времени из адресной шины 17 поступает информация для записи в регистре 77 в одном из каналов записи блока 44 контроля "разветвлений". В момент времени 98-101 триггер 68, переключаясь, организует линии записи и считывания информации регистров 77 блока 44. После окончания записи-считывания в моменты времени 103, 104 на выходе схемы сравнения 66 ожидается изменение сигнала; как только обнаружилась ошибка на выходе устройства 21, сигнал принимает нулевое значение, ошибка определяется результатом сравнения информации в регистре 81 ассоциативного поиска и в триггерах 82. В момент 105 информация не совпала (импульс с отрицательным знаком).
Поставленная цель достигается тем, что предлагаемое устройство увеличивает объем контроля выполнения программы и отдельных операций по сравнению с предложенным в (Авторское свидетельство СССP N 1019451, кл. G 06 F 11/00, 1983, прототип), так как оно позволяет контролировать кроме операций ввода-вывода, арифметических и логических выражений, присваивания и т.п. операции условных и безусловных переходов. Используя данные статистического анализа, проведенного в (Голубев-Новожилов Ю.С. Методы повышения эффективности программирования. М. МИЭТ, 1981), можно говорить о повышении достоверности контроля.
название | год | авторы | номер документа |
---|---|---|---|
УСТРОЙСТВО ДЛЯ ОТСЛЕЖИВАНИЯ КОНТУРОВ ДВУМЕРНЫХ ОБЪЕКТОВ | 1991 |
|
RU2050594C1 |
Устройство для контроля электронной вычислительной машины | 1981 |
|
SU1019451A1 |
Устройство для отладки программ | 1987 |
|
SU1462327A1 |
Устройство для контроля выполнения программ | 1989 |
|
SU1709319A1 |
Устройство для контроля выполнения программ | 1987 |
|
SU1434439A1 |
Автоматизированная система контроля радиоэлектронных устройств | 1989 |
|
SU1683038A1 |
Устройство для отладки программ | 1988 |
|
SU1654827A1 |
Устройство для обмена данными | 1984 |
|
SU1239724A2 |
Устройство для сопряжения ЭВМ с магистралью локальной сети | 1990 |
|
SU1839258A1 |
Устройство для обмена данными | 1981 |
|
SU1012235A1 |
Сущность изобретения: устройство для контроля электронной вычислительной машины позволяет повысить достоверность контроля за ходом вычислительного процесса в ЭВМ с шинной организацией за счет ассоциативного сравнения в начале каждого линейного участка (ЛУ) программы адреса (А) команды (К), выполненной перед К, соответствующей началу ЛУ с набором А команд, допустимым для данного ЛУ. Допустимый набор А формируется в ходе трансляции программы и записывается в специальный блок памяти отдельно для каждого ЛУ. В ходе выполнения программы при обнаружении блоком контроля "разветвлений" начала ЛУ информация о приемлемых адресах К поступает в регистр. В схеме сравнения она сравнивается с А предыдущей К программы. Если среди допустимых отсутствует А, совпадающий с А последней выполненной К, то вырабатывается сигнал прерывания, который подается в процессор. 8 ил.
Устройство для контроля электронной вычислительной машины, содержащее блок счетчиков, дешифратор, первый, второй, третий, четвертый и пятый триггеры, первый, второй и третий элементы И, первый и второй элементы ИЛИ, элемент И НЕ, элемент ИЛИ НЕ, первый и второй формирователи импульсов, первый и второй элементы задержки, первый и второй регистры и первую схему сравнения, первый и второй входы которой подключены к выходам соответственно первого и второго регистров, информационные входы первого и второго регистров соединены соответственно с дополнительным информационным входом-выходом и информационным входом-выходом устройства, синхровходы первого и второго регистров, третьего и четвертого триггеров, установочные входы третьего, четвертого и пятого триггеров, выход первого элемента задержки подключены к управляющему входу-выходу устройства, вход первого элемента задержки соединен с выходом первого элемента ИЛИ, а выход первого элемента задержки подключен к первому входу второго элемента ИЛИ, управляющему входу дешифратора и группе счетных входов блока счетчиков, вход дешифратора соединен с адресным входом-выходом устройства, разрядные выходы дешифратора подключены к входам первого элемента ИЛИ, соответствующие разрядные выходы дешифратора подключены к второму входу второго элемента ИЛИ, входу первого формирователя импульсов и входу выдачи информации блока счетчиков, вход запрета счета, первый и второй входы приема информации, информационные входы, группа входов-выходов и выходы блока счетчиков соединены соответственно с выходом элемента И НЕ, второго и первого формирователей импульсов, дополнительным информационным входом-выходом устройства, информационным входом-выходом устройства и входами элемента ИЛИ - НЕ, выход которого подключен к первому входу первого элемента И и информационному входу первого триггера, информационные входы третьего и четвертого триггеров соединены общей шиной устройства, первый и второй входы и выход третьего элемента И подключены соответственно к выходам третьего и четвертого триггеров и входу второго элемента задержки, при этом информационный вход, синхровход и выход пятого триггера соединены соответственно с выходами первой схемы сравнения и второго элемента задержки, вторым входом второго элемента И, выход которого соединен с вторым входом первого элемента И и синхровходом первого триггера, установочный вход и инверсный выход которого подключены соответственно к выходу дешифратора и первому входу элемента И НЕ, первый и второй входы и выход второго триггера соединены соответственно с выходами дешифратора и второго элемента ИЛИ и вторым входом элемента И НЕ, выход первого элемента И подключен к входу второго формирователя импульсов, а выход элемента И НЕ соединен с первым входом второго элемента И и выходом устройства, отличающееся тем, что оно содержит блок контроля "разветвлений", содержащий шестой триггер, четвертый, пятый, шестой элементы И, восемь групп по шестнадцать элементов И в каждой, третий и четвертый регистры, блок выдачи сигнала прерывания, третий, четвертый, пятый, шестой, седьмой, восьмой и девятый элементы ИЛИ, группу из шестнадцати элементов ИЛИ, вторую схему сравнения, первый вход которой подключен к выходу группы элементов ИЛИ, второй и третий входы соединены соответственно с управляющим входом и дополнительным информационным входом-выходом устройства, выход второй схемы сравнения подключен к входу блока выдачи сигнала прерывания, второй и третий входы которого соединены соответственно с выходами элемента И НЕ и второго триггера, выход блока выдачи сигнала прерывания является выходом блока контроля "разветвлений", первый и второй входы группы элементов ИЛИ соединены с выходами соответственно третьей и четвертой групп элементов И, первые входы третьей и четвертой групп элементов И подключены к выходам пятого и шестого элементов И, а вторые входы соединены соответственно с выходами третьего и четвертого регистров и к первым входам шестой и восьмой групп элементов И, вторые входы которых подключены к управляющим входам-выходам устройства, а выходы шестой и восьмой групп элементов И соединены с информационными входами-выходами устройства, входы третьего и четвертого регистров подключены к выходам соответственно восьмого и шестого, седьмого и девятого элементов ИЛИ, вторые входы шестого и седьмого элементов ИЛИ подключены к выходам соответственно пятой и седьмой групп элементов И, первые входы которых соединены с информационными входами-выходами устройства, а вторые входы и входы восьмого и девятого элементов ИЛИ соединены с управляющими входами-выходами устройства, первые входы шестого и седьмого элементов ИЛИ подключены к выходам первой и второй групп элементов И, вторые входы которых подключены к адресному входу-выходу устройства, первые входы соединены соответственно с инверсным и прямым выходами шестого триггера, третьи входы первой и второй групп элементов И подключены к выходу пятого элемента ИЛИ, входы которого соединены с выходом первой схемы сравнения и выходом первого триггера, четвертые входы первой и второй групп элементов И подключены к выходу блока выдачи сигнала прерывания, прямой выход шестого триггера соединен с первым входом четвертого элемента И, второй вход которого соединен с адресным входом-выходом устройства, а выход с информационным входом-выходом устройства, вход шестого триггера подключен к выходу четвертого элемента ИЛИ, первый вход которого соединен с выходом третьего элемента ИЛИ, а второй вход с управляющим входом-выходом устройства, вход третьего элемента ИЛИ подключен к адресному входу-выходу устройства.
Печь для непрерывного получения сернистого натрия | 1921 |
|
SU1A1 |
Патент США N 3810120, кл | |||
Способ отопления гретым воздухом | 1922 |
|
SU340A1 |
ПРИБОР ДЛЯ ЗАПИСИ И ВОСПРОИЗВЕДЕНИЯ ЗВУКОВ | 1923 |
|
SU1974A1 |
Аппарат для очищения воды при помощи химических реактивов | 1917 |
|
SU2A1 |
Авторское свидетельство СССР N 984332, кл | |||
Приспособление для точного наложения листов бумаги при снятии оттисков | 1922 |
|
SU6A1 |
Устройство для видения на расстоянии | 1915 |
|
SU1982A1 |
Переносная печь для варки пищи и отопления в окопах, походных помещениях и т.п. | 1921 |
|
SU3A1 |
Устройство для контроля электронной вычислительной машины | 1981 |
|
SU1019451A1 |
Приспособление для точного наложения листов бумаги при снятии оттисков | 1922 |
|
SU6A1 |
Гребенчатая передача | 1916 |
|
SU1983A1 |
/прототип/ |
Авторы
Даты
1996-09-20—Публикация
1992-01-03—Подача