Устройство для контроля параллельной вычислительной системы
Иллюстрации
Показать всеРеферат
Изобретение относится к вычислительной технике и позволяет расширить область применения устройств . для контроля параллельных вычислительных систем,- за счет обеспечения возможности контроля параллельных вычислительных систем с переменным числом процессоров и реконфигурацией вычислительного процесса и расширения класса выявляемых дефектов. В результате введения в устройство, содержащее преобразователь кодов, регистр, схему сравнения, блок регистрации логических условий, элементы ИЛИ, триггеры результата контроля и п блоков анализа команд, включающих регистр команд, дешифратор, триггер запуска, счетчик команд, схему сравнения, логические элементы и элемент задержки мультиплексора, регистров, сумматора, логических элементов, формирователя импульсов, элементов задержки и триггеров результата контроля, а в каждый блок анализа команд - схемы сравнения, логических элементов и таймера осуществляется контроль правильности потока команд, поступающего на процессоры , в условиях изменения их числа и реконфигурации вычислительного процесса. Наличие дефектов , приводящих к вьщаче команд не из допустимого множества, замене команд, выдаче команд отказавшему процессору, пропуску и зацикливанию команд, фиксируется триггерами результата контроля . 2 з.п. ф-лы, 7 ил. S (Л СП 05 СО
СОЮЗ СОВЕТСНИХ
СОЦИАЛИСТИЧЕСНИХ
РЕСПУБЛИК цц 4 G 06 F t1/00
ОПИСАНИЕ ИЗОБРЕТЕНИЯ
Н АВТОРСКОМУ СВИДЕТЕЛЬСТВУ
ГОСУДАРСТВЕННЫЙ НОМИТЕТ
ПО ИЗОБРЕТЕНИЯМ И ОТНРЦТИЯМ
ПРИ ГКНТ СССР (21) 4216541/24-24 (22) 26.03.87 (46) 15.01.89. Бюл. В 2 (71) Ленинградский электротехнический институт им. В.И.Ульянова (Ленина) (72) В.В .Барашенков, В.Н,Балакин, А.Ф.Казак и С.А.Никищенков (53) 861.3 (088.8) (56) Вальковский В.А. и др. Элементы параллельного программирования.
М.: Радио и связь, 1983.
Авторское свидетельство СССР
В 1056202., кл. G 06 F 11/00, 1983. (54) УСТРОЙСТВО ДЛЯ КОНТРОЛЯ ПАРАЛЛЕЛЬНОЙ ВЫЧИСЛИТЕЛЬНОЙ СИСТЕМЫ (57) Изобретение относится к вычислительной технике и позволяет расширить область применения устройств.. для контроля параллельных вычислительных систем; за счет обеспечения возможности контроля параллельных вычислительных систем с переменным числом процессоров и реконфигурацией вычислительного процесса и расширения класса выявляемых дефектов. В
„„SU„„1451697 А1 результате введения в устройство, содержащее преобраз ователь кодов, регистр, схему сравнения, блок регистрации логических условий, элементы ИЛИ, триггеры результата контроля и и блоков анализа команд, включающих регистр команд, дешифратор, триггер запуска, счетчик команд, схему сравнения, логические элементы и элемент задержки мультиплексора, регистров, сумматора, логических элементов, формирователя импульсов, элементов задержки и триггеров результата контроля, а в каждый блок анализа команд — схемы сравнения, логических элементов и таймера осуществляется контроль правильности потока команд, поступающего на процессоры, в условиях изменения их числа и реконфигурации вычислительного процесса. Наличие дефектов, приводящих к выдаче команд не из допустимого множества, замене команд, выдаче команд отказавшему процессору, пропуску и зацикливанию команд, фиксируется триггерами результата контроля. 2 з.п. ф-лы 7 ил.
1451697
Изобретение относится к автоматике и вычислительной технике и предназначено для использования в качестве аппаратуры контроля правильности
5 функционирования программных блоков управления (БУ) в параллельных вычислительных системах (ПВС), обладающих свойством реконфигурации и отказоустойчивости. 10
Целью изобретения является расширение области применения устройства за счет обеспечения возможности контроля ПВС с переменным числом процессоров и реконфигурацией вычислительного процесса, а также расширения класса выявляемых дефектов.
На фиг. 1 показана схема устройства; на фиг. 2 — схема блока регистрации логических условий; на фиг. 3 - 20 схема таймера; на фиг. 4 (а-д), 5 (а-г) и 6 (а-д) — примеры контролируемых программ и настройки устройства; на фиг. 7 - таблица, иллюстрирующая функционирование контролирующего 25 автомата.
Устройство содержит преобразователь 1 кодов, первый регистр,2, первую схему 3 сравнения, блок 4 регистрации логических условий, первый, второй и третий элементы ИЛИ 5, 6, 7, первый, второй и третий триггеры 8, 9 и 10 результата контроля, регистр
11 команд с полем 11.1 метки логического условия, полем 11.2 метки команды и полем 11.3 кода типа команды, вторую схему 12 сравнения, первый элемент И 13, элемент ИЛИ-HE 14, второй элемент И 15, первый элемент 16 задержки, дешифратор 17, третий элемент И 18, второй элемент 19 задержки, пятый элемент И 20,, триггер 21 запуска, счетчик 22 числа команд, четвертый элемент И 23, и блоков анализа команд 24, 1-24.п четвертый элемент ИЛИ 25, мультиплексор 26, 45 второй регистр 27, третий элемент 28 задержки, формирователь 29 импульсов, третий регистр 30, сумматор 31, четвертый регистр 32, шестой и пятый элементы ИЛИ 33 и 34 соответственно, седьмой элемент И 35, четвертый элемент 36 задержки, первый элемент
НЕ 37, шестой элемент И 38, седьмой и восьмой элементы ИЛИ 39 и 40 соответственно, четвертый и пятый тригге-55 ры 41 и 42 результата контроля, третью схему 43 сравнения, восьмой элемент И 44, девятый и десятый элементы И 45 и 46, второй элемент
НЕ 47, таймер 48. Устройство содержит также вход 49 синхронизации начальной установки, вход 50 начальной установки, вход 51 кода начальной установки, вход 52 начального сброса, вход 53 логических условий, i-й блок анализа 24.i имеет вход 54.i контролируемых команд, вход 55.i признака окончания выполнения команды, вход 56.i запуска команд, вход
57 ° i признака отказа процессора, с первого по пятый выходы 58-62 триггеров результата контроля, первую и вторую группы информационных входов блока 4 соответственно 63.1,..., 63.п и 64. 1,...,64.п, входы и выхо ды с 65,i по 78,i i-ro блока анализа команд.
Блок 4 регистрации логических условий (фиг.2) включает в себя и дешифраторов 79.1,. ° .,79.п, с первой
80.1,...,80.m по и-ю 81.1,...,81.m группы элементов И, первую и вторую группы элементов ИЛИ 82.1, ° ..,82.m и 83. 1, ...,83 .тп, элементы 84, 1.
84,m задержки, триггеры 85. 1,..., 85,m, выход 86 блока.
Таймер 48 (фиг.3) содержит генератор 87 импульсов, первый и второй делители 88 и 89 частоты, элемент
ИЛИ 90, первый и второй входы 91 и
92., выход 93.
Преобразователь 1 служит для хранения информации о требуемом (правильном) функционировании контролируемого БУ, причем входными данными преобразователя являются текущий номер (метка) яруса в ярусно-параллельной форме (ЯПФ) и значения логических условий, проверенных в процессе вычисления, а выходными — метка следующего яруса и число команд в нем.
Регистр 2, схема 3 сравнения, сумматор 31 и регистр 32 служат для сравнения к моменту перехода на следующий ярус требуемого и действительного чисел команд, инициированных
БУ в данном ярусе параллельно-.исследовательной программы (ППП) .
Блок 4 служит для формирования на первом входе преобразователя 1 вектора Р значений логических условий в выполняемой ППП.
Элемент ИЛИ 5 и триггер 8 служат для формирования на выходе 58 сигнала ошибки, вызванной несовпадением з
145 требуемого и действительного чисел команд в ярусе или одновременной инициацией команд из текущего и следующего яруса.
Элемент ИЛИ 6 и триггер 9 служат для формирования на выходе 59 сигнала ошибки, вызванной инициацией контролируемым БУ команд, не принадлежащих ни текущему, ни следующему ярусам.
Элемент ИЛИ 7 и триггер 10 служат для формирования на выходе 60 сигнала ошибки, вызванной запуском следующей команды в i-м процессоре до окончания выполнения текущей команды.
Регистр 11 служит для приема по сигналу на входе 56.i признака команды с. входа 54.i сопровождающего каждую команду в ППП и состоящего из метки логического условия (поле li.i) метки команды (поле 11 ° 2) и кода типа команды (поле 11.3), которые указывают соответственно номер логического условия (ЛУ) в ярусе, номер яруса и тип команды (операцион,ная, условная, т.е. команда перехода, или команда ожидания события, т.е. синхронизации) .. Метки ЛУ и команды, однозначно определяя ЛУ в ППП, поступают на вход блока 4, метка команды » на схемы 12 и 43 для сравнения с метками текущего и следующего ярусов, поступающих соответственно с первого и второго выходов регистра 30.
Элемент ИЛИ-НЕ 14, элемент И 15 и элемент 16 задержки служат для,формирования на выходе 75.i сигнала ошибки, вызванной инициацией команды, не принадлежащей текущему и следующему ярусам.
Элементы 19 и 16 служат для исключения возможности ложной вьдачи сигнала на выходе 75.i из-за переходньп процессов в блоках 12, 43, 13, 44 и
14, вызванных записью нового кода в регистр 11.
Дешифратор 17 и элемент И 45 служат для формирования на выходе 66.i сигнала окончания выполнения команды проверки ЛУ и синхронизации тем самым блока 4. Дешифратор 17 формирует на первом выходе признак операционной или условной команды.
Триггер 21 служит для фиксации запуска очередной операционной или условной команды, а элемент И 20 для установки его в "i" из состояния
"0" при условии наличия признака на
1697
4 первом выходе дешифратора 17 и отсутствия признака отказа i-го процессора на входе 57.д.
Счетчик 22 служит для подсчета
5 числа команд, выполненных в i-м процессоре. Сумматор 31 служит для подсчета числа команд, выполненных в и процессорах, а регистр 32 — для фиксации этого числа к моменту перехода на следующий ярус.
Элемент И 23 служит для формирования сигнала при инициации команды до окончания выполнения предьдущей в данном процессоре.
Блоки 25-28, 30, преобразователь и блок 4 образуют контролирующий автомат, служащий для формирования контрольных признаков (меток ярусов и чисел команд) в зависимости от предьдущего яруса и значений ЛУ, т.е. от хода вычислительного процесса, инициируемого правильно функционирующим БУ.
25 Элементы ИЛИ 33 и 34 служат для формирования сигнала — признака инициации команд из текущего и следующего ярусов в блоках 24.1,...,24.п причем формирователь 29 выдает импульс при запуске хотя бы одной команды из следующего яруса, в результате чего осуществляется переход контролирующего автомата в новое состояние при условии, что на выходе элемента ИЛИ 5 присутствует уровень "0" °
Элемент ИЛИ 39 и триггер 41 служат для формирования на выходе 61 сигнала ошибки при выдаче импульса с выхода блока 48 любого блока 24.i при повышении времени нахождения триггера
2! в состоянии "0" или "1" по сравнению с допустимым.
Элемент ИЛИ 40 и триггер 42 служат для формирования на выходе 62 сигнала, ошибки при вьдаче контроли45 руемым БУ команды в отказавший процессор, что фиксируется элементом
И 46.
Устройство работает следующим образом.
50 . При подготовке устройства к контролю параллельного БУ производится определение функций выход-вход преобразователя 1 в зависимости QT программ, реализуемых БУ. На фиг. 4, 5, 55 6 показаны примеры таблиц настройки блока 1 (фиг.4-6в) по ЯПФ (фиг.4-6б) и эквивалентные ППП, различающиеся степенью параллелизма, порядком
5 14 следования операторов и их распределением по процессорам (фиг.4-6à,r,д), В качестве метки яруса и принадлежащих ему команд используется его номер (что в общем случае не обяза.— тельно), а число команд и ярус перехода в следующих за условной командой ярусах может модифицироваться в зависимости от значения логических условий к концу выполнения яруса, содержащего условную команду.
В соответствии с принятым принципом комантроля БУ в условиях реконфигурации вычислительного процесса— использования ЯПФ для получения контролируемых соотношений — программы, реализуемые БУ, приводятся к контролепригодному виду, отвечающему следующим условиям: инициация (запуск) команд из следующего яруса может начаться, если выполнены все команды иэ текущего, соответствующие значениям ЛУ в данном вычислении, если в какой-либо ветви осуществляется переход на следующий ярус, то в остальных ветвях ППП инициируется либо команда из него, либо команда ожидания (синхронизации).Это всегда возможно для ациклических ППП (составляющих преобладающую часть в практике параллельных вычислений) и для ППП без конкурирующих процессов над общей памя1 ью, например для ППП с циклами в в отдельно взятых ветвях (см.фиг.6), поскольку приведение к контролепригодному виду осуществляется путем введения в ППП дополнительных операторов (команд) ожидания wait(X), где Х вЂ” событие в соседних ветвях.
Для ППП с конкурирующими процессами, где используется семафорная техника,. преобразования носят более сложный характер. Применимость предлагаемого устройства рассматривается на реконфигурируемых ПВС, реализующих ППП без взаимодействующих (между собой и ветвями) по управляющим и информационным переменным циклов. На фиг.46 все программы контролепригодны.
При правильном функционировании
БУ на процессоры поступает поток команд, состоящий из операционных, условных команд и команд ожидания и соответствующий ППП с числом ветвей, равным числу исправных процессоров.
При отказе части процессоров БУ реконфигурирует выполняемую программу— переводит ее в эквивалентную, но
51697 6 с меньшим числом ветвей (например, нафиг. 4 — отдк гик а, на фиг, 5 — от г к а, нафиг. 6 — or д
5 или г к а), что осуществляется, в зависимости от органиэации ПВС, путем возврата к началу программы, либо рестартом с контрольной точки (яруса), либо оперативно. Обратный процесс происходит при вводе в работу ранее отказавших процессоров, но уже отремонтированных.
При возникновении в контролируемом БУ сбоев и отказов искажается поток команд, поступающих на процессоры (и на блоки 24.i устройства), при этом возможны следующие типы дефектов.
Инициируемая команда не принадлежит ни к текущему, ни к следующему ярусу, Условие нормального функционирования (УНФ) для i-й ветви ППП:
25 функция ошибки (ФО): где с „ (с „, ) — признак принадлежности команды к текущему
30 (следующему) ярусу, равный 1 при mä, — m (mA. = m
m A . MeTKa команды
m „(m „, ) — метка текущего (следующего) яруса;
f признак выполнения команды в 1-м процессоре ФО для всей
ППП (БУ в целом): н
40 D = \/ d, 1=!
2, При переходе к следующему ярусу не окончено выполнение команд текущего (т.е. одновременное выполнение команды из текущего.и следующе45 ro ярусов), УНФ; (.Ч (f A c „) ). Л
A(Я(f V „c „i,)) = 0; ФО: (Я,(f (fÅп, 3. Время выполнения или ожидания инициации команды в процессоре превышает допустимое значение. УНФ:
1, . D3 = Л d, где t< (t<, ) и (t- ") — соответственно время выполнения (ожидания) команды и максимально допустимые значения.
4 ° Инициация очередной команды в процессоре происходит до завершения
51697
25
7 14 выполнения. предыдущей. УНФ: f Л а .=
1 ФО: d = f Ла = 1 D =.V d
У 4 4 i= 4 где а - признак запуска команды.
5. Команда инициируется отказавшему процессору. УНФ: r; V, а = 1;
ФО:d = r h a, D =.Ч dz, где
1 е r; — признак отказа i-ro процессора.
6. При переходе на следующий ярус число команд, выполненных в текущем ярусе, не равно требуемому. УНФ: (Ч,(h с „,)) Л Ву = 1, ФО1 П
= .V (f A с „)) h В „= 1, где
1=
В ц „- признак совпадения требуемого и действительного чисел команд, выполненных в ярусе, формируемый в момент перехода на следующий ярус.
В предлагаемом устройстве сигнал а интерпретируется импульсом на входе 56.i, f — состоянием прямого выхода триггера 21 m А — состоянием выхода 11.2 регистра 11 блока 24 ° i
mK — состоянием первого выхода регистра 30, m „, — состоянием второго выхода регистра 30, с„ и с „, — состоянием. соответственно выхода элемента И 13 и выхода элемента И 44 блока 24.i, r; — состоянием входа
57. i,  — состоянием выхода схемы
3, d — состоянием выхода элемента
ИЛИ-ЙЕ 14 блока 24.i D —,состоянием выхода элемента И 35, д — состоянием выхода блока 48 блока 24.i
D3 — состоянием выхода элемента
ИЛИ 39, Й вЂ” состоянием выхода элемента и 23, D4 — состоянием выхода элемента ИЛИ 7, dq — состоянием выхода элемента И 46, D — состоянием выхода элемента ИЛИ 40, D — состоянием выхода схемы 3 непосредственно после формирования импульса на выхо-. де формирователя 29 и записи в регистр 32.
После сброса устройства (подачей импульса на вход 52) на входах 50 и
51 выставляются соответственно уровень управления мультиплексором 26, соответствующий записи в регистр 27 с входа 51 (например, "1"), и код метки mK яруса, предшествующего начальному ярусу программы (или ярусу рестарта), например, К = 0 для ППП на фиг. 4-6, затем на вход 49 подается импульс,по которому в регистр
27 записывается ш„, в регистр 2 состояние первого выхода блока 1 (фиг.7), на первом и втором выходах блока 1 формируются значения числа команд в следующем (начальном) ярусе и его метка, а через время задержки в элементе 28, большее суммы задержки в блоках 1 и 27, в регистр 30 записывается значение mK è m „. Аналогично происходит в процессе функционирования устройства при поступлении импульса с выхода элемента И 38, с той разницей, что в регистр 27 записывается состояние второго выхода блока 1. На фиг. 7 стрелками показана пересылка данных.
Затем на входе 50 устанавливается уровень "0" и подается импульс на вход 49, переводящий контролируемый автомат в исходное состояние (строки таблиц с К = 1 на фиг. 4-7). После этого устройство готово к контролю БУ.
При выполнении программы контролируемый БУ выдает в процессоры команды и анализирует значения ЛУ, формируемые процессорами. Признаки команд (теги), содержащиеся в дополнительных полях команд и имеющие значения в соответствии с ЯПФ, поступают на входы 54.1...,,54.п устройства и записываются в регистр 11 по импульсу, формируемому BY в момент выдачи очередной команды в процессор и постулающему на вход 56.i. Каждая операционная команда имеет метку, равную метке яруса (при этом поле метки ЛУ может иметь призвольное значение) .
Каждая условная команда имеет метку команды, равную метке яруса, и метку
ЛУ, равную номеру ЛУ в ярусе, Для ко-манд ожидания значение меток команд
ЛУ может быть произвольным. Напри40 мер, на фиг. 4 команды В, С, D, Е и
P имеют метки команд, равные 2, а команда А - метку ЛУ, равную 1 (первая в ярусе) .
Метка типа команды, принимающая 3 значения (операционная, условная или
45 команда ожидания) поступает на вход дешифратора 17. При этом на первом входе элемента И 20 уровень равен
"1", если данная команда не является командой ожиданиями на вход 64.i поступает уровень "1" по импульсу на входе 55.i (окончание выполнения кома щы), если данная команда является условной, прнчем импульс на вход
55.i поступает от i-го процессора, завершившего выполнение операционной или условной комары.
Триггер 2 1, фиксирующий выполнение команды (операционной или условной) 9 145 в i-м процессоре, переводится из состояния "0" (после выполнения предыдущей команды) в состояние "1" (запуск очередной комары) при условии, что инициируемая команда не является командой ожидания (т.е, операционная или условная) и процессор работоспособен (уровень на входе 57.i равен
"0").
Если поступившая в i-й процессор (на вход 54.i устройства) команда является условной (команда перехода по условию), то на вход б3.i блока
4 (и, соответственно, на информационный вход дешифратора 79.i) поступает код проверяемого условия, однозначно определенный конкатенацией кодов метки команды (яруса) и метки .ЛУ, хранимых в полях 11.2 и 11.1 регистра 11. Значение данного ЛУ, сформированное в i-м процессоре к моменту окончания выполнения команды, поступает в БУ и на вход 53 устройства, причем i-й разряд принимает значение ЛУ и оно поступает на вторые входы элементов И i-й группы блока 4. Затем при поступлении импульса с выхода элемента И 45 на вход управления дешифратора 79,i он формирует на своем j-м выходе уровень "1", где j — номер ЛУ в списке ЛУ программы и номер соответствующего триггера в группе триггеров 85.1,...,85.ш, который устанавливается в состояние, соответствующее значению проверенного данной командой данного ЛУ, что формирует текущее значение вектора
Р, поступающего на первый вход блока 1.
Следует отметить, что блок 4 выполнен таким образом, что j-й триггер устанавливается в состояние, равное значению проверяемого j-ro (из списка ЛУ) ЛУ, независимо от того, на вход которого дешифратора
79.1,...,79.п поступает код ЛУ, т.е. независимо от того, какой процессор участвует в вычислении значения ЛУ (фиг.2) °
При правильной работе контролируемого БУ, управляющего h процессорами, на каждый из них (и, соответственно, блок 24) поступает последовательная ветвь ППП. По окончании выполнения очередной операционной или условной команды по заданному фронту уровня на прямом выходе триггера 2 1 производится увеличение на
1697 1О единицу состояния счетчика 22 в бло- ке 24,i. После выполнения команд текущего яруса на один или несколько
5 процессоров постулает команда из следующего яруса, например, команда Т— в первый процессор, а команда G— во второй или с расстановкой во времени (из-за разницы во времени выполнения команд А, В, С, см.фиг.5r).
При этом по уровню "1" на выходе элемента ИЛИ 34 формирователь 29 выдает одиночный импульс, по которому осуществляется запись суммы кодовсостояний счетчиков 22 в блоках 24.124.п в регистр 32 и сброс счетчиков,.
Время задержки в элементе Зб выбирается таким, что импульс на первый вход элемента И 38 и.стробирующий вход триггера 8 пбступает после формирования уровня на втором входе элемента И 38. При правильном функционировании БУ в этот момент на выходе схемы 3 уровень В д = 0 (совпадение к
2Б состояния регистров 2 и 32) . Например, при выполнении программы на фиг. 7 после выполнения команд первого яруса в счетчиках 22 блоков 24. 1 и 24.2 хранятся числа 2б и 18. Так
>0 как команды текущего яруса выполнены, Фj то на выходах элементов 35 и 33 уровни равны "0" и импульс проходит на выход элемента 38, переводя блоки 1, 2, 27 и 30 в новые состояния, при этом следующий ярус устанавливается текущим (фиг.7). Затем устройство работает аналогично.
Длительность импульса на выходе формирователя 29 выбирается такой, 40 чтобы маскировать на четвертом входе элемента ИЛИ-НЕ 14 выдачу ложного сигнала на его выход на время переходных:процессов в регистре 30, схемах 12 и 43 и элементах И 13 и 44 в блоках 24. i куда поступили коман45 ды, вызвавшие переход на следующий ярус.
При выдаче БУ команд ожидания в процессоры, соответствующие ветвям
ППП с данными командами, в соответствующих блоках 24 ° i триггеры 2 1 остаются в состоянии "0" до поступления очередных операционных или условных команд. В блоках 48 частота импульсов генератора 87 и коэффициен55 ты делителей 88 и 89 задаются такими, чтобы наибольшее время выполнения комаьщ из данного списка (системы)
%4Х команд не превышало 1.,;, а время ожи1451 дания события в соседних ветвях мах
ППП вЂ” величины -; . Например, для
f так
ППП на фиг. бд величина t —; (частота генератора и коэффициейт делителя
88) задается исходя из времени вы5 полнения команд Е, F, J, R и предельного значения кратности цикла. При функционировании блока 48 импульс на его выходе появляется, если время отсутствия уровня "0" на входах 9 1 и 92 превышает допустимое.
При выполнении БУ программы с ветвлениями (условными командами) реальный ход процессора может быть раз- 15 личным в зависимости от значений ЛУ.
В устройстве это учитывается в процессе настройки блока 1, определяю— 7 щей в зависимости от P переход на один или другой ярус либо модификацию 20 числа команд в ярусе (строка 2 на . фиг.4в, строки 2, 4 и 5 на фиг. 5в, строка 4 на фиг. бв, где "-" означает, что состояния выходов блока 1, записываемые к концу каждого яруса 25 в регистры 2, 27 и 30, не зависят от соответствующих ЛУ, т.е. от состояния соответствующих разрядов первого входа блока 1).
Таким образом, при правильном З<> функционировании БУ и процессоров выполняется заданная ППП и на выходах 58-62 сигналов ошибки (единичных уровней) не возникает.
При отказах части процессоров (изменении числа работающих). выпол35 нение ППП прерывается, БУ переходит к вычислению по программе, эквивалентной данной, но с иным числом ветвей. При этом устройство не пере40 настраивается, а возвращается в ис-. ходное состояние или точке рестарта.
При этом если реконфигурация (переход к новой программе при новом числе процессоров) осуществлена правильно, то в ходе выполнения программы
45 на выходах 58-62 устройства сигналов ошибок не возникает.
При сбоях и отказах в БУ, неправильном диспетчировании и реконфигурации, в потоке команд, поступающем на процессоры и рассматриваемое устройство, появляются искажения, приводящие к формированию на выходах 58-62 устройства сигналов ошибок. При этом устройство выявляет искажения как в нереконфигурируемой программе, так и в условиях перехода к ней эквивалентной после отказа час697 12 ти процессоров, что расширяет область применения устройства.
При "зависании" управления (отсутствии выдачи команд БУ работоспособными процессорами) в любой из ветви блоком 48 соответствующего блока 24.i формируется импульс, и на выходе 61 появляется сигнал ошибки (дефект 3).
При ложном возникновении команды на выходах БУ, которая не принадлежит данной программе, устройство формирует на выходе 59 сигнал ошибки, со-. ответствующий дефекту 1.
Если в любой иэ отказавших процессоров выдана команда, это приводит к дефекту 5 и формируется сигнал на выходе 62.
При поступлении очередной команды в любой из работоспособных процессоров до окончания выполнения предыдущей устройство выявляет дефект 4 и формирует сигнал на выходе 60.
Если БУ выдает многократно одну и ту же команду в любой из работоспособных процессоров ("эалипание" управления), то это обнаруживается устройством либо как дефект 3 (в других ветвях время ожидания превышает допустимое; например, при "залипании", команды А в ППП на фиг. 4г ожидает команда F аналогично при
"залипании" команд ожидания), либо как дефект 6 при самоустраняемом
"залинании", что приводит к появлению сигналов соответственно на выходах 61 и 58.
Если в результате неправильного функционирования БУ в любой ветви происходит пропуск команд (перескок) то это обнаруживается либо как дефект
6 (команда, которой передано управление, принадлежит тому же ярусу, например, пропуск команды С в той же программе), либо как дефект 1 (после
С выполняется Н), либо как дефект 3 (пропущена команда D) и формируется соответственно сигнал на выходе 58, 59 или 61.
Преждевременная выдача любой из команд в любой из работоспособных процессоров (например, команды G на фиг. 4д до завершения команд Е или P) выявляется устройством как дефект 2 либо как дефект 6 (если в момент ее инициации не выполняются команды на других ветвях).
10 !
13 14
Ложная выдача команд из текущего яруса в момент перехода на следующий выявляется устройством как дефект 2.
При ошибочном возврате в любой из ветвей ППП к пройденным командам (зацикливании) устройство. выявляет это как.дефект 3 (в других ветвях ожидается событие, которое не может произойти), либо как дефект 1 (возврат к предыдущим ярусам), либо как дефект 2 (команда возврата принадлежит текущему ярусу, а произошел или происходит переход к следующему), либо как дефект 6, причем в ряде случаев дефекты разных типов (например, типа 1 и 6) могут выявляться устройствами вместе, что приводит к появлению нескольких сигналов ошибок на выходах 58-62.
Если в. БУ осуществлен неправильный переход после вычисления значения
БУ, это обнаруживается при несовпадении требуемого и действительного чисел команд в следующих ярусах, т.е. как дефект 6. Например, пусть для
ППП на фиг. 5 (а или r) после выполнения команды U вычислено значение
U = 1, а переход осуществляется на команду Н. Тогда после выполнения команд шестого яруса и запуска команд из седьмого выявляется дефект
6 (выполнено 24 команды вместо 31).
Отсутствие окончания программы обнаруживается устройством как дефект 3.
Устройство обладает возможностью обнаружения искажений не только в порядке следования команд, но и в словах команд, если это приводит к искажению метки команды и метки типа команды.
Поскольку устройство выявляет искажения в работе БУ независимо от порядка и распределения команд яруса, то оно применимо для контроля
БУ, выполняющего программу в условиях реконфигурации вычислительного процесса. При этом, поскольку контролируется выходной поток команд БУ, то контролем охватываются аппаратная часть БУ, память программ и программные средства распараллеливания и диспетчеризации в ПВС. . При распараллеливании и диспетчеризации на уровне блоков программ (фиг. 5 а в скобках число команд в блоках.z, у, 1 обозначают кортежи внешних входных и выходных перемен51697 14 ных блОкОВ) устрОйство функционирует аналогично, выявляя искажения на. уровне команд, При этом команды блока имеют одинаковые метки, равные метке яруса, При выполнении БУ множества программ в предлагаемом устройстве в,старших разрядах первого входа блока
1 выделяются несколько разрядов, состояние которых определяет функции выходов блока 1 и равно номеру программы (номеру подтаблицы настройки блока 1) . Соответствующие триггеры в блоке 4 устанавливаются до выполнения данной программы путем установки соответствующих разрядов входа
53 соответственно номеру программы и выдачи БУ команд проверки данных дополнительных ЛУ.
При проведении БУ изменяемого списка программ блок 1 выполняется в виде блока памяти (ОЗУ), причем значения ЛУ поступают на младшие разряды адреса, следующие разряды адреса подключаются к выходу регистра 27 (являются вторым входом), а на самые старшие разряды адреса поступают значения ЛУ, определяющие номер выполняемой (контролируемой) программы. Для осуществления контроля нового списка программ БУ в блок
1 до начала контроля вводятся значения в соответствии с таблицами настройки.
При включении предлагаемого устройства в состав ПВС с загружаемыми программами в параллельно работающие процессоры предлагаемое устройство подключается входами 54.1-..54.п и
56.1-..56.п к входам регистра команд соответствующего процессора. При этом контролируются распределенный
БУ, включающий блок управления и память программ каждого процессора, и центральный БУ с памятью программ и программами диспетчеризации. Таким образом, устройство обладает возможностью контроля, управляющей части
ПВС как с локальной памятью процессоров, так и без нее, Устройство обладает возможностью контроля БУ и ПВС с независимыми, параллельно выполняемыми программами, при этом блоки программ распределяются по ярусам искусственно.
Предлагаемое устройство предполагает минимизацию аппаратурного исполнения путем сравнения в схемах 12, 15
1451697 16
43 и 3 значений признаков команд и ярусов, взятых по модулю k, при этом сокращается разрядность блоков 2, 32, 3; 11, 12, 43, 22.
При функционировании устройства
5 дефекты 1, 4 и 5 обнаруживаются практически мгновенно (время задержки в цепи от входов блока анализа команд до выходов триггеров результата конт- 1О роля намного меньше времени выполнения команды в процессоре), а дефекты
2 и 6 — в момент инициации перехода на новый ярус (при этом переход не осуществляется, т.к. блокирован элемент И 38). После обнаружения дефекта и появления сигналов ошибки на выходах 58-62 процесс вычисления прерывается, а после устранения сбоя или отказа или после реконфигурации 2О устройство переводится в состояние, соответствующее точке рестарта.
Устройство обладает возможностью выявления дефектов и в процессорах, если они приводят к длительному не- 25 выполнению команд (дефект 2) .
Таким образом, предлагаемое устройство обладает возможностью контроля правильности функционирования
БУ и ПВС, выполняющих программу с произвольной степенью параллелизма. в условиях переменного (неизвестного, деградирующего) числа процессоров, при динамическом (но в рамках ЯПФ) распараллеливании и распределении участков программ по процессорам, т.е. обладает расширенной областью применения. Устройство характеризуется расширенным классом выявляемых дефектов и повышенной контролирующей способностью, так как независимо от . числа ветвей параллельной программы обнаруживает дефекты в управлении вычислениями, обусловливающие ложное возникновение, замену, пропадание и искажение команд, что приводит к нарушению вычислительного процесса (выполнение операций не над теми данными, невыполнение операций над данными, "зависание" вычисления) .
Формула из обретения
1. Устройство для контроля параллельной вычислительной системы, содержащее преобразователь кодов, первый регистр, первую схему сравнения, блок регистрации логических условий, первый, второй и третий элементы
ИЛИ, первый, второй и третий триггеры результата контроля и п блоков анализа команд, где n — число процессоров в контролируемой параллельной вычислительной системе, причем i-й блок анализа команд (i = 1,2,...,n) содержит регистр команд, вторую схему сравнения, первый, второй, третий, четвертый и пятый элементы И, элемент ИЛИ-НЕ, первый и второй элементы задержки, дешифратор, триггер запуска и счетчик числа команд, причем
i-й вход логических условий блока регистрации логических условий соединен с i M входом логических условий устройства, выход блока регистраций логических условий соединен с первым входом преобразователя кодов, первый выход которого соединен, с информационным входом первого регистра, выход которого соединен с первым информационным входом первой схемы сравнения, выход которой соединен с первым вхо" дом первого элемента ИЛИ, выходы первого, второго и третьего элементов
ИЛИ соединены с входами установки в
"1" триггеров результата контроля соответственно с первого по третий, в 1-м блоке анализа команд информационный вход и вход синхронизации регистра команд соединены соответственно с i-м входом контролируемых команд и i-м входом запуска команд устройства, выход поля кода тина команды регистра команд соединен с информационным входом дешифратора, выход поля метки команды регистра команд соединен с первым информационным входом второй схемы сравнения, выход поля метки команд и выход поля метки логического условия регистра команд соединены с i.— ì входом первой группы информационных входов блока регистрации логических условий, выход второй схемы сравнения соединен с первым входом первого элемента И, выход которого соединен с первым входом элемента ИЛИ-НЕ, выход которого соединен с первым входом второго элемента И, второй вход которого соединен с выходом первого элемента задержки, выход второго элемента И соединен с i-м входом второго элемента ИЛИ, прямой выход триггера запус55 ка соединен со счетным входом счет" чика числа команд, первым входом третьего элемента И и первым входом четвертого элемента И, второй вход
17 l4 и выход третьего элемента И соединены соответственно с х-м входом признака окончания выполнения команды устройства и входом установки в "О" триггера запуска, вход установки в
"1" и инверсный выход которого соеди иены соответственно с выходом и первым входом пятого элемента И, второй вход которого соединен с выходом вто рого элемента задержки, вход которого соединен с i-м входом запуска команд устройства, вход начального сброса счетчика числа команд, вход начального сброса триггера запуска, входы сброса с первого по третий триггеров результата контроля, вход сброса блока регистрации логических условий соединены с входом начального сброса устройства, первый выход дешифратора соединен с третьим входом пятого элемента И, выход второго элемента задержки соединен с входом первого элемента задержки и вторым входом четвертого элемента И, о т л и ч а ю щ е е с я тем, что, с целью расширения области применения эа счет обеспечения возможности контроля параллельных вычислительных систем с переменным числом процессоров и реконфигурацией вычислительного процесса и расширения класса обнаруживаемых дефектов, в него введены четвертый, пятый, шестой, седьмой и восьмой элементы ИЛИ, мультиплек-: сор, второй, третий и четвертый регистры, третий и четвертый элементы задержки, формирователь импульсов, сумматор, шестой и седьмой элементы
И, первый элемент НЕ, четвертый и пятый триггеры результата контроля, в i-й блок анализа команд введены третья схема сравнения, восьмой, девятый и десятый элементы И, второй элемент НЕ, таймер, причем первый вход четвертого элемента ИЛИ соединен с входом синхронизации начальной установки устройства,