RU2023292C1 - Device for redistribution of jobs between processors - Google Patents
Device for redistribution of jobs between processors Download PDFInfo
- Publication number
- RU2023292C1 RU2023292C1 SU4940192A RU2023292C1 RU 2023292 C1 RU2023292 C1 RU 2023292C1 SU 4940192 A SU4940192 A SU 4940192A RU 2023292 C1 RU2023292 C1 RU 2023292C1
- Authority
- RU
- Russia
- Prior art keywords
- group
- block
- input
- elements
- register
- Prior art date
Links
Images
Landscapes
- Hardware Redundancy (AREA)
Abstract
Description
Изобретение относится к вычислительной технике и может найти применение в отказоустойчивых многопроцессорных системах для распределения нагрузки между процессорами. The invention relates to computer technology and may find application in fault-tolerant multiprocessor systems for load balancing between processors.
Известно устройство, содержащее блок памяти, регистры, шифраторы, узел опроса, счетчик, узлы анализа столбцов и строк, схемы сравнения, триггеры, логические элементы. Однако это устройство отличается сложностью [1]. A device is known that contains a memory block, registers, encoders, a polling node, a counter, nodes for analyzing columns and rows, comparison schemes, triggers, logic elements. However, this device is complex [1].
Наиболее близким по технической сущности к изобретению (прототипом) является устройство для распределения задач между процессорами, содержащее блок элементов памяти, дешифратор, элемент И-НЕ и блок перебора перестановок [2]. The closest in technical essence to the invention (prototype) is a device for distributing tasks between processors, containing a block of memory elements, a decoder, an NAND element and a block of enumeration of permutations [2].
Однако это устройство характеризуется большим объемом оборудования. However, this device is characterized by a large amount of equipment.
Действительно, для организации перераспределения нагрузки в вычислительной системе, содержащей n процессоров, постоянное запоминающее устройство блока перебора перестановок должно содержать (n-1) ! ячеек с кодами настроек процессоров. Indeed, to organize load balancing in a computer system containing n processors, the read-only memory of the permutation enumeration block must contain (n-1)! cells with processor settings codes.
Целью изобретения является снижение объема оборудования посредством организации поиска соответствующего распределения задач путем циклических сдвигов кодов задач. The aim of the invention is to reduce the amount of equipment by organizing a search for an appropriate distribution of tasks by cyclic shifts of task codes.
Указанная цель достигается тем, что в устройство для распределения задач между процессорами, содержащее группу элементов памяти, элемент И-НЕ, дешифратор, причем группа входов устройства соединена с группой входов дешифратора, каждый выход которого соединен с первым входом соответствующего элемента памяти, выход которого соединен с соответствующим входом элемента И-НЕ, введены блок сдвига кодов задач и блок счетчиков циклов, причем выход элемента И-НЕ соединен со входом блока счетчиков циклов, группа выходов которого соединена с группой входов блока сдвига кодов задач, группа выходов которого соединена со вторыми входами группы элементов памяти и выходом устройства. This goal is achieved by the fact that in a device for distributing tasks between processors containing a group of memory elements, an NAND element, a decoder, the group of device inputs connected to a group of decoder inputs, each output of which is connected to the first input of the corresponding memory element, the output of which is connected with the corresponding input of the AND-NOT element, a block for shifting task codes and a block of cycle counters are introduced, and the output of the AND-NOT element is connected to the input of the block of cycle counters, the group of outputs of which is connected to input unit code shift tasks, a group of whose output is connected to second inputs of memory elements of the group and the output device.
Введение в состав предлагаемого устройства упомянутых блоков и организация их связей с упомянутой совокупностью элементов является существенным признаком, так как позволяет снизить объем оборудования по сравнению с прототипом. The introduction of the said blocks into the composition of the proposed device and the organization of their relations with the mentioned set of elements is an essential feature, since it allows to reduce the amount of equipment compared to the prototype.
На фиг. 1 приведена структурная схема устройства; на фиг. 2 - возможный вариант реализации элемента памяти; на фиг. 3 - возможный вариант реализации блока сдвига кодов задач; на фиг. 4 - возможный вариант реализации блока счетчиков циклов. In FIG. 1 shows a structural diagram of a device; in FIG. 2 - a possible embodiment of a memory element; in FIG. 3 - a possible embodiment of a block of a shift of task codes; in FIG. 4 - a possible implementation of a block of cycle counters.
Устройство для распределения задач между процессорами содержит (см. фиг. 1) группу 1 элементов памяти, элемент И-НЕ 2, дешифратор 3, элементы памяти 4, блок сдвигов кодов задач 5 и блок счетчиков циклов 6. A device for distributing tasks between processors contains (see Fig. 1) a group of 1 memory elements, an
Элемент памяти 4 содержит (см. фиг. 2) дешифратор адреса 7, группу линий задержки 81...8n, группу двухвходовых элементов И 91...9n, группу триггеров 101...10n, группу двухвходовых элементов И 111...11n, элемент ИЛИ 12.
Блок сдвигов кодов задач 5 содержит (см. фиг. 3) группы двухвходовых элементов И 131....13n-1 по m элементов в каждой (m = llog 2nl), группу из m (n-1)-входовых элементов ИЛИ 14, (n-1)-входовый элемент ИЛИ 15, m-разрядный буферный регистр 16, группу m-разрядных регистров 171...17n, группу линий задержки 181...18n, группу двухвходовых элементов ИЛИ 191...19n-2.The shift block of
Блок счетчиков циклов 6 содержит (см. фиг. 4) двухвходовой элемент И 20, генератор импульсов 21, группу m-разрядных счетчиков 221...22n-2, группу m-разрядных регистров 231. . .23n-2, группу схем сравнения 241... 24n-2, группы элементов задержки 251...25n-2 и 261...26n-2.The block of
Совокупность введенных элементов может быть выполнена на микросхемах любой серии, имеющей в своем составе логические элементы счетчики, регистры (например, ИМС серий 133, 155, 106, 500 и пр.). Устройство работает следующим образом. Формирование вариантов распределения задач производится блоком сдвига кодов задач 5, код задачи fi на j-ом выходе которого соответствует настройка j-го процессора на выполнение задачи fi. Проверка работоспособности распределения задач (перестановки) между процессорами происходит по информации, хранимой в группе 1 элементов памяти. В группу 1 элементов памяти заносится матрица ||φ ij|| , элемент которой φ ij=1, если j-ый процессор способен решать задачу fi, в противном случае φ ij=0; j-й элемент памяти 4 соответствует j-ому столбцу матрицы ||φ ij|| .The set of input elements can be performed on any series of microcircuits, incorporating counters, registers (for example,
Запись "0" в ячейку φ ij происходит при потере j-ым процессором способности выполнения возложенной на него задачи fi. На входы дешифратора 3 подается код отказавшего процессора в конце цикла работы на котором произошел отказ этого процессора. Возбужденным выходом дешифратора 3 осуществляется выборка элемента памяти 4j. Адрес, соответствующий коду потерянной задачи, подается с j-го выхода блока сдвига кодов задач 5 на второй вход соответствующего элемента памяти 4.Writing "0" to the cell φ ij occurs when the j-th processor loses the ability to perform the task f i assigned to it. At the inputs of the
При этом на выходе элемента памяти 4j устанавливается "0" (содержимое выбранной ячейки в случае потери процессором способности решать задачу). На выходе элемента И-НЕ 2 формируется "1", поступающая на вход блока счетчиков циклов 6.At the same time, “0” is set at the output of memory element 4 j (the contents of the selected cell in case the processor loses its ability to solve a problem). At the output of the AND-
В блоке счетчиков циклов 6 формируются управляющие импульсы, которые с выходов блока 6 выдаются на соответствующие входы блока сдвигов кодов задач 5, при этом блоком сдвигов кодов задач 5 вырабатывается следующий по порядку вариант распределения задач. Если сформированное распределение является работоспособным, то на выходы всех элементов памяти 41...4n выдаются логические "1" и на вход блока счетчиков циклов 6 поступает логический "0". Если выбранный вариант распределения задач не является работоспособным, то на выходе элемента И-НЕ 2 остается логическая "1", поступающая на вход блока счетчиков циклов 6, при этом через определенное время на выходах блока 6 появятся управляющие сигналы, которые поступят на входы блока сдвига кодов задач 5. При этом будет выработан следующий вариант распределения задач и т.д.In the block of
Для выработки всевозможных перестановок кодов задач предназначен блок сдвига кодов задач 5. В регистры 171...17n записаны коды задач f1...fn (первоначально в регистр 171 записан код f1, в регистр 172 - код f2, и т.д. ; в регистр 17n записан код fn). На выходе устройства будет выработан набор кодов f1,f2...fn. С приходом управляющего импульса на вход l1 блока сдвигов кодов задач 5 происходит следующее. Управляющий импульс подается на вторые входы группы элементов И 131, к первым входам которых подключены соответствующие выходы регистра 17n, при этом код задачи fn, записанный в регистре 17n, через группу элементов И 131 и группу элементов ИЛИ 14 подается на информационный вход буферного регистра 16, на вход разрешения записи которого с входа l1 блока через элемент ИЛИ 15 подается управляющий импульс. При этом происходит запись кода fn в буферный регистр 16. Управляющий импульс, с входа l1 блока, кроме того, через линию задержки 18n подается на вход разрешения записи регистра 17n, информационные входы которого соединены с соответствующими выходами регистра 17n-1; при этом код fn-1 из регистра 17n-1 переписывается в регистр 17n. Управляющий импульс далее последовательно через элементы задержки 18n-1...181 подается на входы разрешения записи регистров 17n-1...172; при этом в каждый регистр 17i записывается код, находящийся в регистре 17i-1, в регистр 171 записывается код fn из буферного регистра 16. Таким образом формируется распределение кодов fn, f1, f2... fn-1. Следующим управляющим импульсом, приходящим на вход l1, аналогичным образом формируется распределение кодов fn-1, fn, f1, f2...fn-2, и т.д. Через n импульсов, появившихся на входе l1, в регистрах 171...17n будет записано исходное распределение кодов f1,f2...fn, после чего приходит управляющий импульс на вход l2, при этом код fn-1, записанный в регистр 17n-1, записывается в буферный регистр 16, а в регистры 17n-1...172 записываются коды задач, которые находятся в регистрах с номером на единицу меньше. В регистр 171 записывается содержимое буферного регистра 16. Таким образом будет сформировано распределение кодов fn-1, f1, f2...fn-2, fn. Управляющий импульс, приходящий на вход l1, формирует циклический сдвиг n кодов, импульс, приходящий на вход l2, формирует циклический сдвиг n-1 кода, и т. д. Импульсы формируются таким образом, что через каждые n импульсов, появившихся на входе l1, появляется импульс на входе l2, через каждый n-1 импульс, появившийся на входе l2, появляется импульс на входе l3, через каждые n-2 импульса на входе l3, появляется импульс на входе l4, и т.д. Таким образом формируются все возможные n! распределений кодов.To generate every possible permutation unit intended
Все управляющие импульсы для блока сдвига кодов задач 5 формируются блоком счетчиков циклов 6, который работает следующим образом. Если с выхода элемента И-НЕ 2 на вход блока сдвига кодов задач 5 поступает логическая "1", то импульс, формируемый генератором импульсов 21, через элемент И 20 поступает на счетный вход счетчика 221 и на первый выход блока счетчиков циклов 6, который подключен к входу l1 блока сдвига кодов задач 5. При этом блоком сдвига кодов задач 5 формируется новое распределение кодов. Если это распределение кодов оказывается неработоспособным, то на выходе элемента И-НЕ 2 остается логическая "1" и следующий импульс с генератора 21 через элемент И 20 подается на счетный вход счетчика 221 и на первый выход блока 6. Если новое распределение кодов является работоспособным, то на выходе элемента И-НЕ 2 формируется логический "0" и подается на вход блока 6, при этом логический "0" оказывается на первом входе элемента И 20 и, следовательно, импульсы с выхода генератора импульсов 21 не проходят через элемент И 20. Количество пришедших импульсов подсчитывается в счетчике 221 и сравнивается в схеме сравнения 241 с числом "n", которое записано заранее в регистре 231. Если число импульсов равно n, то на выходе схемы сравнения 241 появляется логическая "1", которая через линию задержки 251 подается на счетный вход счетчика 222, на второй выход блока 6, который подключен к входу l2 блока 5, и через линию задержки 261, - на вход "сброс" счетчика 221. При этом cчетчик 221 устанавливается в нулевое состояние. Линия задержки 251 предназначена для задержки сигнала на время, требуемое для срабатывания элементов блока 5 по управляющему импульсу с входа l1. Содержимое счетчика 222 сравнивается в схеме сравнения 242 с числом "n-1", записанным в регистр 232. При совпадении на выходе схемы сравнения 242 появляется логическая единица, которая через линию задержки 252 подается на счетный вход счетчика 223, на третий выход блока 6, который подключен к третьему входу l3 блока 5, и через линию задержки 263 - на вход "сброс" счетчика 222 и т. д. В регистр 233 записано число "n-2", в регистр 234 - "n-3" и т.д.All control pulses for the shift block of
Элемент памяти работает следующим образом. На второй вход какого-либо элемента памяти подается код задачи fj, на который настроен i-тый процессор. Со входа элемента памяти 4i код fj подается на дешифратор 7, при этом на j-том выходе дешифратора 7 появляется логическая "1", которая через линию задержки 8j подается на первые входы элементов И 9j и 11j. На второй вход элемента И 11j подается логическая "1", с прямого выхода триггера 10j, который в исходном положении находится в единичном состоянии. С выхода элемента 11j логическая "1" через элемент ИЛИ 12 подается на выход элемента памяти. При отказе i-го процессора, код неисправного процессора подается на вход дешифратора 3, на i-том выходе которого появляется логическая "1", которая поступает на первый вход элемента памяти 4i. Со входа элемента памяти 4i логическая "1" поступает на вторые входы элементов И 91...9n, при этом на выходе элемента И 9j появляется логическая "1", которая поступает на вход R-триггера 10j, который переходит в нулевое состояние, в результате чего на выходе элемента памяти 4i появится логический "0".The memory element works as follows. The second input of a memory element is supplied with the task code f j , on which the ith processor is configured. From the input of the
Технико-экономическая эффективность предлагаемого устройства заключается в сокращении объема оборудования по сравнению с прототипом. Блок перебора перестановок прототипа содержит (n-1)! ячеек памяти ПЗУ и n регистров (по количеству возможных вариантов распределения, хранящихся в ПЗУ). В предлагаемом устройстве возможные варианты распределения не хранятся в ПЗУ, а формируются посредством циклических сдвигов кодов задач в блоке сдвигов кодов задач. Таким образом, в связи с отсутствием необходимости хранения возможных вариантов распределения аппаратурные затраты при реализации предлагаемого устройства меньше примерно в (n-1) раз, чем при реализации прототипа. При достаточно больших значениях n (n - количество процессоров и решаемых задач в системе) выигрыш по сравнению с прототипом оказывается существенным. Feasibility study of the proposed device is to reduce the amount of equipment compared to the prototype. The prototype permutation enumeration block contains (n-1)! ROM memory cells and n registers (according to the number of possible distribution options stored in the ROM). In the proposed device, the possible distribution options are not stored in the ROM, but are formed by cyclic shifts of the task codes in the block of shifts of the task codes. Thus, due to the lack of the need to store possible distribution options, the hardware costs during the implementation of the proposed device are approximately (n-1) times less than when implementing the prototype. With sufficiently large values of n (n is the number of processors and tasks in the system), the gain in comparison with the prototype is significant.
Данное устройство может найти применение при проектировании отказоустойчивых вычислительных систем, в которых восстановление работоспособности после отказа достигается перераспределением функций, возложенных на процессоры. This device can find application in the design of fault-tolerant computing systems in which the recovery from failure is achieved by redistributing the functions assigned to the processors.
Claims (1)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SU4940192 RU2023292C1 (en) | 1991-05-29 | 1991-05-29 | Device for redistribution of jobs between processors |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SU4940192 RU2023292C1 (en) | 1991-05-29 | 1991-05-29 | Device for redistribution of jobs between processors |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2023292C1 true RU2023292C1 (en) | 1994-11-15 |
Family
ID=21576612
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
SU4940192 RU2023292C1 (en) | 1991-05-29 | 1991-05-29 | Device for redistribution of jobs between processors |
Country Status (1)
Country | Link |
---|---|
RU (1) | RU2023292C1 (en) |
-
1991
- 1991-05-29 RU SU4940192 patent/RU2023292C1/en active
Non-Patent Citations (2)
Title |
---|
1. Авторское свидетельство СССР N 696471, G 06F 15/20, 1976. * |
2. Авторское свидетельство СССР N 982005, G 06F 9/46, 1989. * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US3636519A (en) | Information processing apparatus | |
RU2023292C1 (en) | Device for redistribution of jobs between processors | |
US3845282A (en) | Apparatus and method for unambiguous counter reading | |
US4866718A (en) | Error tolerant microprocessor | |
US4069473A (en) | Associative memory | |
RU2153699C1 (en) | Device for relocating tasks among processor units | |
US3714634A (en) | Method and system for sorting without comparator | |
SU1474645A1 (en) | Device for distribution of tasks between processors | |
RU2051412C1 (en) | Device for solving systems of linear algebraic equations | |
RU1807499C (en) | Matrix multiplier | |
SU1716514A2 (en) | Device for assigning jobs to processors | |
SU1254490A1 (en) | Device for checking operations with common data field | |
SU1410053A1 (en) | Device for asynchronous associative loading of multiprocessor computing system | |
SU767766A1 (en) | Device for determining data parity | |
SU1562966A1 (en) | Device for selection of asynchronous signals on basis of criterion "m out of n" | |
RU1807448C (en) | Program control unit | |
RU2024969C1 (en) | Redundancy storage device | |
SU840887A1 (en) | Extremum number determining device | |
RU2045787C1 (en) | Associative storage | |
RU1815634C (en) | Device for computation of minimal cover | |
SU437072A1 (en) | Firmware Control | |
RU1795460C (en) | Device for determining number of unities in binary code | |
SU1444769A1 (en) | Multichannel arrangement for distributing tasks among processors | |
RU2049350C1 (en) | Device for solving systems of linear algebraic equations | |
SU1439535A1 (en) | Program control device |