SU1488800A1 - Device for dispatching tasks to processors - Google Patents
Device for dispatching tasks to processors Download PDFInfo
- Publication number
- SU1488800A1 SU1488800A1 SU884364987A SU4364987A SU1488800A1 SU 1488800 A1 SU1488800 A1 SU 1488800A1 SU 884364987 A SU884364987 A SU 884364987A SU 4364987 A SU4364987 A SU 4364987A SU 1488800 A1 SU1488800 A1 SU 1488800A1
- Authority
- SU
- USSR - Soviet Union
- Prior art keywords
- input
- output
- register
- counter
- block
- Prior art date
Links
Landscapes
- Multi Processors (AREA)
Description
Изобретение относится к вычислительной технике и может быть использовано в многомашинных и многопроцессорных вычислительных системах для распределения нагрузки между процессорами. Цель изобретения расширение области применения устройИзобретение относится к вычислительной технике и может найти применение в многомашинных и многопроцессорных вычислительных системах для распределения нагрузки между процессорами.The invention relates to computing and can be used in multi-machine and multiprocessor computer systems for load distribution between processors. The purpose of the invention the expansion of the scope of the device. The invention relates to computing and can be used in multi-machine and multiprocessor computer systems for load distribution between processors.
Цель изобретения - расширение области применения устройства за счет выбора процессора с учетом объема выполняемых им операций.The purpose of the invention is to expand the field of application of the device due to the choice of processor, taking into account the volume of operations it performs.
На Фиг.1 представлена структурная схема предлагаемого устройства; на фиг.2 - структурная схема коммутатора .Figure 1 shows the structural diagram of the proposed device; figure 2 - block diagram of the switch.
Устройство содержит блоки 1 и 2 памяти, регистры 3 и 4, счетчик 5,The device contains blocks 1 and 2 of memory, registers 3 and 4, counter 5,
22
ства за счет выбора процессора с учетом объема выполняемых им операций. Устройство для распределения заданий процессором содержит два блока 'памяти, два регистра, два счетчика, мультиплексор, дешифратор, блок регистров, коммутатор, блок элементов И, три элемента ИЛИ, элемент И, два элемента задержки, формирователь импульса и генератор тактовых импульсов. При функционировании предлагаемого устройства происходят анализ занятости процессоров и оптимизация их загрузки на выполнение требуемых функций. При изменении количества процессоров и изменении ко- с дов функций схемная реализация блока логических условий меняется, оптимизируя процесс обслуживания, 2 ил.,by selecting the processor based on the amount of operations it performs. A device for distributing tasks by a processor contains two blocks of memory, two registers, two counters, a multiplexer, a decoder, a register block, a switch, a block of AND elements, three OR elements, an AND element, two delay elements, a pulse shaper and a clock generator. During the operation of the proposed device, an analysis of the employment of processors takes place and the optimization of their load on the performance of the required functions. With a change in the number of processors and a change in the codes of functions, the circuit implementation of the block of logical conditions changes, optimizing the service process, 2 or less.
2 табл.2 tab.
у—y—
дешифратор.6, элемент И 7, генератор 8 тактовых импульсов, счетчик 9, мультиплексор 10, формирователь 11 импульсов, элементы 12 и 13 задержки, элементы ИЛИ 14 и 15, выходы 16-18, входы 19-22, коммутатор 23, блок 24 элементов И, элемент ИЛИ 25, блок 26 регистров, элемент ИЛИ 27.decoder.6, element 7, 8 clock pulse generator, counter 9, multiplexer 10, driver 11 pulses, delay elements 12 and 13, elements OR 14 and 15, outputs 16-18, inputs 19-22, switch 23, block 24 AND elements, OR element 25, register block 26, OR element 27.
Коммутатор 23 (фиг.2) содержит дешифраторы 28-31, элементы НЕ 32 и 33, элементы И 34-39, дешифратор 40, узлы 41-43 элементов И, узел 44 элементов ИЛИ, входы 45-47 блока.The switch 23 (FIG. 2) contains decoders 28-31, elements HE 32 and 33, elements AND 34-39, decoder 40, nodes 41-43 of elements AND, node 44 of elements OR, inputs 45-47 of the unit.
Устройство работает следующим образом.The device works as follows.
5 Ц 14888005 C 1488800
‘1488800‘1488800
Блок 1 памяти предназначен для хранения очереди запросов, а блок 2 памяти - для отображения функциональных возможностей процессоров. При этом в ячейке блока 2 памяти содержится "I", если з~й процессор способен выполнить функцию £', в противном случае в ней находится "0"Memory block 1 is designed to store the request queue, and memory block 2 is used to display the functionality of the processors. In this case, the cell of memory block 2 contains "I", if the s ~ processor is able to perform the function £ ', otherwise it contains "0"
(ί = 1,2,3,..., Ν; а = 1,2,3...,М). 10 (ί = 1,2,3, ..., Ν; a = 1,2,3 ..., M). ten
Регистр 4 хранит информацию о занятости процессоров: з~й разряд регистра 4 содержит "1”, если ^-й процессор не занят, в противном случае он содержит "0". Обнуление з~го разряда 15 регистра 4 осуществляется устройством при загрузке ^-го процессора, а запись в этот разряд "1" осуществляется з~м процессором при завершении обслуживания загруженного в него 20 запроса.Register 4 stores information about the busy processors: the 3rd discharge of register 4 contains "1" if the ^ -th processor is not busy, otherwise it contains "0". The reset of the 3rd discharge 15 of register 4 is performed by the device when loading ^ - processor, and writing to this bit "1" is done by the m processor when the service of the 20 request loaded into it is completed.
Перед началом распределения на вход 22 устройства подается потенциал, по которому происходит обнуление 25Before the distribution starts, the potential 22 is applied to the device input 22.
регистра 3, и обнуление блока 26 регистров через элемент ИЛИ 27. .register 3, and resetting the block 26 registers through the element OR 27..
При этом перед началом работы по распределению запросов на вход 20 запрос абонентом (источником запро-. 30 сов) не выдается и отсутствует сигнал сопровождения запроса (на входах 20 блока 1 памяти содержится нулевой код). На инверсном выходе первого разряда регистра 3 содержится "1" в этом случае, сигнал переноса со счетчика 9, проходя через элементы И 7 и ИЛИ 15, поступает на вход записи блока 1 памяти. По этому сигналу осуществляется запись "нулевого" кода с входов 20 в блок 1 памяти по адресу с выхода, счетчика 5 (происходит обнуление ячейки блока 1 памяти по адресу счетчика 5). С некоторой задержкой на элементе 12 по сигналуAt the same time, before starting work on the distribution of requests for input 20, the request by the subscriber (the source of the request for 30 sows) is not issued and there is no signal to support the request (the inputs 20 of memory 1 contain a zero code). The inverse output of the first digit of register 3 contains "1" in this case, the transfer signal from counter 9, passing through the elements AND 7 and OR 15, is fed to the recording input of memory block 1. This signal records the "zero" code from inputs 20 to memory block 1 at the address from the output of counter 5 (the cell of memory 1 is reset at the address of counter 5). With some delay on element 12 on signal
г» 46g »46
переноса со счетчика У осуществляется увеличение на единицу содержимого счетчика 5. При этом по следующему сигналу переноса осуществляется обнуление следующей ячейки блока 1 памяти и т.д. После завершения· цик- ^0 ла (одного или нескольких) обнуления всех ячеек блока 1 памяти абонент может подавать запросы в устройство для их распределения по процессорам, $$ причем к этому времени сигнал с входа ^22 снимается. Запрос и сигнал сопровождения (код запрашиваемой функции) выдается абонентом на вход 20.the transfer from the Y counter is increased by one unit of the contents of the counter 5. At the same time, the next transfer signal resets the next cell of the memory block 1, etc. After completion of the cycle- ^ 0 la (one or several) zeroing of all the cells of memory block 1, the subscriber can submit requests to the device for their distribution among the processors, $$ and by this time the signal from input ^ 22 is removed. The request and the tracking signal (the code of the requested function) is issued by the subscriber to the input 20.
При поступлении первого запроса на инверсном выходе первого разряда регистра 3 находится "1" (так как в регистре 3 находится нулевой код, т.е. с блока 1 памяти не выдан запрос, предназначенный для распределе ния), При этом выборки мультиплексора 10 не происходит и сигнал переноса со счетчика 9 передается через элементы И 7 и ИЛИ 15 на вход записи блока 1 памяти (при наличии сигнала на выходе элемента ИЛИ 15 происходит запись кода с входа 20 в блок'1 памяти по адресу с выхода счетчика 5, а при отсутствии этого сигнала - чтение из блока 1 памяти по тому же адресу). Таким образом, по сигналу переноса счетчика 9 код запроса с входа 20 записывается в блок 1 памяти по адресу со счетчика 5 (сигнал сопровождения с входа 20 записывается в первыйразряд ячейки памяти, содержимое которой при считывании заносится в первый разряд регистра 3). Кроме того, по сигналу переноса со счетчика 9 с задержкой (задержка определяется временем записи в блоке 1 памяти) на элементе 12 содержимое счетчика 5 увеличивается на "1", причем к этому моменту импульсный сигнал на выходе элемента ИЛИ 15 отсутствует и происходит чтение из блока 1 памяти. По сигналу с элемента 13 задержки ' (задержка определяется временем чтения содержимого блока 1 памяти по новому адресу со счетчика 5) происходит обнуление счетчика 9 и считывание содержимого блока'] памяти по новому адресу счетчика 5 в регистр 3. Абонент, получив сигнал, вырабатываемый в момент занесения запроса в блок 1 памяти (в очередь), снимает (через время записи в памяти) с входов 20 запрос и при необходимости выставляет новый.When the first request is received, the inverse output of the first digit of register 3 is “1” (since the zero code is in register 3, i.e, the request intended for distribution was not issued from memory block 1), the sampling of multiplexer 10 does not occur and the transfer signal from counter 9 is transmitted through the AND 7 and OR 15 elements to the recording input of memory 1 (if there is a signal at the output of the OR 15 element, the code from the 20 input to the memory block 1 is written to the address from the output of the counter 5, and of this signal - reading from memory block 1 for the same address ECU). Thus, according to the transfer signal of counter 9, the request code from input 20 is written to memory block 1 at the address from counter 5 (the tracking signal from input 20 is written to the first bit of the memory cell, the contents of which are added to the first digit of register 3 when read). In addition, according to the transfer signal from counter 9 with a delay (the delay is determined by the recording time in memory block 1) on item 12, the contents of counter 5 are incremented by "1", and by this time the pulse signal at the output of the OR 15 element is missing and reading from the block occurs 1 memory. The signal from the delay element 13 '(the delay is determined by the reading time of the contents of memory block 1 at the new address from counter 5) resets the counter 9 and reads the contents of the memory block'] at the new address of counter 5 into register 3. The subscriber, having received the signal generated in the time of entering the request into memory block 1 (in the queue), removes (after recording in the memory) from the inputs 20 the request and, if necessary, sets a new one.
Если в регистр 3 заносится код с ячейки блока 1 памяти, содержащий запрос ("1" в первом разряде регистра 3), то на инверсном выходе первого разряда регистра 3 появляется "0", блокирующий элемент И 7. и осуществляющий выборку мультиплексора 10. При поступлении каждого импульса с генератора 8 через мультиплексор 10 осуществляется последовательное подключение к входу выборки блока 2 памяти разрядов регистра 4If the code from the cell of memory 1 containing the request ("1" in the first digit of register 3) is entered into register 3, then the inverse output of the first digit of register 3 displays "0", blocking element AND 7. and sampling multiplexer 10. When the arrival of each pulse from the generator 8 through the multiplexer 10 is a serial connection to the input of the sample block 2 memory bits of the register 4
14888001488800
(информации о занятости процессоров с первого по М-й).(information about the employment of processors from the first to the M-th).
В результате последовательного подключения разрядов регистра 4 и при произведении выборки в блоке 2 памяти происходит появление сигналов на его выходе. При поступлении на первый вход блока 26 регистров памяти сигнала производится запись адреса свободного процессора. Сигнал с выхода блока 2 памяти вырабатывается, если процессор, определяемый счетчиком 9, не занят (сигнал с выхода мультиплексора 10 осуществляет выборку блока 2 памяти) и способен выполнить запрашиваемую функцию (на выход блока 2 памяти выдается "1" с его ячейки, адрес строки которой поступает с регистра 3, а адрес столбца - с выхода счетчика 9).As a result of the serial connection of the bits of the register 4 and when the sample is made in memory block 2, signals appear at its output. Upon receipt at the first input of the block 26 of the memory registers of the signal, the address of the free processor is written. The output signal from memory block 2 is generated if the processor defined by counter 9 is not busy (the signal from the output of multiplexer 10 samples the memory block 2) and is able to perform the requested function (the output of memory block 2 is "1" from its cell, the row address which comes from register 3, and the address of the column - from the output of the counter 9).
При проведении цикла опроса занятости процессоров в блоке 26 регистров записываются адреса всех свободных процессоров, способных выполнить запрашиваемую функцию. Записанная таким образом информация с выхода блока 26 регистров поступает на второй управляющий вход коммутатора 23, на первый управляющий вход которого поступает код запрашиваемой функции. Коммутатор 23 при комбинационном программном анализе с учетом подаваемых на его входы сигналов выдает адрес того процессора, который наиболее приемлемо использовать в сложившейся ситуации, В качестве коммутатора 23 может быть использована жесткая логическая комбинационная схема, которая выполняет предварительно запрограммированные операции и работает следующим образом.When conducting a cycle of the busy processors in the register block 26, the addresses of all free processors that can perform the requested function are recorded. The information recorded in this way from the output of the register block 26 is fed to the second control input of the switch 23, the first control input of which receives the code of the requested function. When combining software analysis, taking into account the signals supplied to its inputs, the switch 23 provides the address of the processor that is most appropriate to use in the current situation. As the switch 23, a hard logic combinational circuit can be used that performs the preprogrammed operations and works as follows.
Допустим, что к данному устройству прдключены три процессора. Первый из них может выполнять функции 1 и 3 обслуживания, второй все три функции, а третий - функции 2 и 3.Assume that three processors are connected to this device. The first of them can perform functions 1 and 3 of service, the second all three functions, and the third - functions 2 and 3.
Запрос на выполнение функции 1 приходит чаще, чем на выполнение функции 2. В связи с этим предварительно разрабатывается логика работы логического устройства по алгоритмам, сведенным в табл.1.The request for the execution of function 1 comes more often than for the execution of function 2. In this connection, the logic of operation of the logic device according to the algorithms summarized in Table 1 is preliminarily developed.
Как видно из табл.1, при запросе на обслуживание по выполнению функции 3 устройство будет подключать· для обслуживания процессор 3, т.к.As can be seen from Table 1, when requesting a service to perform function 3, the device will connect · processor 3 to service, since
функция 2 приходит реже функции 1 и вследствие этого устраняется образование очереди, которая бы возникла, если функцию.3 стал бы выполнять процессор 1, а не 2.function 2 comes less frequently than function 1 and, as a result, the formation of a queue is eliminated, which would arise if function 3 were to be executed by processor 1 rather than 2.
Приведенный пример показывает необходимость логического анализа выбора обслуживаемого процессора. ПриThe given example shows the need for a logical analysis of the choice of a serviced processor. With
10 росте количества функций обслуживания и количества процессоров логический алгоритм функционирования более очевиден и приемлем, нежели последовательный жесткий выбор обслужи15 вающего процессора, не учитывающий выполняемых процессором функций.10 the growth of the number of service functions and the number of processors the logical algorithm of functioning is more obvious and acceptable than the consistent hard selection of a service processor that does not take into account the functions performed by the processor.
На первый управляющий вход коммутатора 23 подается адрес запрашиваемой функции. На второй управляю20 щий вход подаются адреса свободных процессоров. С выхода выдается адрес выбранного процессора.The first control input of the switch 23 is served the address of the requested function. The addresses of free processors are fed to the second control input. From the output is given the address of the selected processor.
Адреса свободных процессоров поступают из блока 26 регистров на де25 шифраторы 28-30, на выходах которых появляются логические сигналы. Через элементы И 34-36, 39 они поступают на входы дешифратора 40. Он выполняет основую функцию выбора процес30 сора в соответствии с логикой работы устройства. Возможные логические сигналы на его входах и выходах приведены в табл.2, которая составляется на основе табл.1.The addresses of free processors come from block 26 of registers to 25 encoder 28-30, the outputs of which appear logical signals. Through the elements 34-36, 39, they enter the inputs of the decoder 40. It performs the basic function of selecting a process in accordance with the logic of the operation of the device. Possible logical signals at its inputs and outputs are given in table 2, which is compiled on the basis of table 1.
3535
Элементы И 34-36 разрешают прохождение сигналов с дешифраторов 2830 при запросе на обслуживание функции 1 и 3. Элемент И 39 разрешаетElements 34-36 and allow the passage of signals from the decoders 2830 when requesting service functions 1 and 3. And element 39 permits
40 прохождение сигнала с выхода дешифратора 28 при запросе на обслуживание функции 2 и 3, Элементы И 37 и 38 устраняют неоднозначность выбора при функции 2 и 3 в строках 7,8,13,40 passing the signal from the output of the decoder 28 when requesting service of functions 2 and 3, Elements 37 and 38 eliminate the ambiguity of the choice with function 2 and 3 in lines 7,8,13,
45 16 табл.2. Сигналы выбора адреса процессоров поступают на входы узлов 41-43 элементов И. Адрес того или иного процессора поступает на узел 44 элементов ИЛИ с одного из инфор50 мационных входов 21.45 16 table 2. The signals for selecting the address of the processors arrive at the inputs of nodes 41-43 of the elements I. The address of one processor or another arrives at the node 44 elements OR from one of the information inputs 21.
В конце цикла опроса сигнал переноса поступает на вход блока 24 элементов И, Адрес с выхода блока 24 поступает на информационные входыAt the end of the polling cycle, the transfer signal is fed to the input of the block 24 elements And, the Address from the output of block 24 is fed to the information inputs
55 дешифратора, а логический сигнал, появившийся в этот момент на элементе ИЛИ 25, производит выборку дешифратора 6, на выходе которого появляется сигнал загрузки соответ755 of the decoder, and the logical signal that appeared at that moment on the element OR 25, selects the decoder 6, at the output of which a load signal appears corresponding to 7
14888001488800
8eight
ствующего процессора. По сигналу с выхода 18 дешифратора 6 осуществляется обнуление соответствующего разряда регистра 4. По заднему фронту сигнала на выходе элемента ИЛИ 25 на формирователе 11 вырабатывается сигнал, по которому в ячейку блока 1 памяти по адресу с выхода счетчика 5 записывается код запроса и сигнал сопровождения с входа 20,processor. The signal from the output 18 of the decoder 6 is reset to the corresponding discharge register 4. On the back edge of the signal at the output of the element OR 25 on the driver 11 produces a signal on which the request code and the tracking signal from the input 5 are written to the cell of the memory block 1 at the address from the output of the counter 5 20,
Если абонент запроса не выставляет, то в адресуемую ячейку блока 1 памяти заносится нулевой код с входа 20. По сигналу 17 абонент через время, достаточное для занесения информации в блок памяти, снимает запрос и при необходимости выставляет новый. По сигналу с выхода формирователя 11, передаваемого через элемент 12 задержки (задержка определяется временем записи в блок 1 памяти), осуществляется увеличение на "1" содержимого счетчика 5. При поступлении сигнала на тактовый вход счетчика 5 импульсный сигнал на выходе элемента ИЛИ 15 уже отсутствует и происходит чтение с блока I памяти. По сигналу с выхода элемента 13 задержки (задержка равна времени считывания информации с блока 1 памяти по новому адресу с выхода счетчика 5) происходит занесение кода с выхода блока 1 памяти в регистр 3.If the subscriber does not issue a request, then the zero code from input 20 is entered into the addressable cell of memory 1. At a signal 17, the subscriber, after enough time to enter information into the memory, removes the request and, if necessary, issues a new one. The signal from the output of the imaging unit 11 transmitted through the delay element 12 (the delay is determined by the recording time in memory block 1) increases by 1 the contents of the counter 5. When a signal arrives at the clock input of the counter 5, a pulse signal at the output of the OR 15 element is already absent and it reads from memory block I. The signal from the output of the delay element 13 (the delay is equal to the time of reading information from memory 1 at a new address from the output of counter 5) the code from the output of memory 1 into register 3 occurs.
В результате этого в регистр 3 заносится запрос, хранимый по адресу блока 1 памяти, определяемому увеличенным содержимым счетчика 5 (или нулевой код, если по этому адресу запроса не занесено),As a result, a request is stored in register 3 stored at the address of memory block 1 determined by the enlarged contents of counter 5 (or a null code if the request is not recorded at this address)
Кроме того, по сигналу с %ыхода элемента 12 задержки через элемейт ИЛИ 27 происходит обнуление регистров памяти блока 26.In addition, the signal from the% output of the delay element 12 through the element OR 27 is the reset of the memory registers of block 26.
Если за полный цикл работы счетчика 9 (от его обнуления до формирования сигнала переноса) не найден свободный процессор, способный выполнить запрашиваемую функцию, то по сигналу переноса счетчика 9 содержимое счетчика 5 увеличивается на ”1" и в регистр ‘3 записывается запрос, хранимый в блоке 3 памяти по новому адресу со счетчика 5. В ячейке по старому адресу "перераспределенный" запрос сохраняется,'а занесения запроса в очередь (блок 1 памяти) по этому адресу не происходит и сигнал на выходе 17 устройства не формируется. При этом абонент сохраняет на входах 20 старый, не поставленный в очередь, запрос. Через время перебора счетчиком 5 всех ячеек блока 1 памяти попытка распределения "нераспределенного" на предыдущем цикле запроса повторяется,If during the full cycle of counter 9 operation (from its resetting to forming a transfer signal), a free processor capable of performing the requested function is not found, by the transfer signal of counter 9, the contents of counter 5 are increased by ”1" and the request stored in register 3 is written to memory block 3 at the new address from the counter 5. In the cell at the old address, the “redistributed” request is saved, and the request is not entered in the queue (memory block 1) at this address and the signal at the device output 17 is not generated. At the inputs 20, the old, not queued, request. After a search by the counter 5 of all the cells of memory 1, the attempt to distribute "unallocated" on the previous request cycle is repeated,
Claims (1)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SU884364987A SU1488800A1 (en) | 1988-01-13 | 1988-01-13 | Device for dispatching tasks to processors |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SU884364987A SU1488800A1 (en) | 1988-01-13 | 1988-01-13 | Device for dispatching tasks to processors |
Publications (1)
Publication Number | Publication Date |
---|---|
SU1488800A1 true SU1488800A1 (en) | 1989-06-23 |
Family
ID=21350254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
SU884364987A SU1488800A1 (en) | 1988-01-13 | 1988-01-13 | Device for dispatching tasks to processors |
Country Status (1)
Country | Link |
---|---|
SU (1) | SU1488800A1 (en) |
-
1988
- 1988-01-13 SU SU884364987A patent/SU1488800A1/en active
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4195340A (en) | First in first out activity queue for a cache store | |
US4167782A (en) | Continuous updating of cache store | |
US4157587A (en) | High speed buffer memory system with word prefetch | |
JPS5950071B2 (en) | video information storage device | |
JPH0622034B2 (en) | Multiport vector register file | |
US4805094A (en) | Multi-channel memory access circuit | |
EP0367995B1 (en) | Vector data transfer controller | |
SU1488800A1 (en) | Device for dispatching tasks to processors | |
US4648065A (en) | Modified snapshot priority enabling two requestors to share a single memory port | |
WO2001025941A1 (en) | Multiprocessor computer systems with command fifo buffer at each target device | |
US5619679A (en) | Memory control device and method operated in consecutive access mode | |
SU1285474A1 (en) | Device for distributing jobs among processors | |
JPS6125178B2 (en) | ||
SU1133622A1 (en) | Buffer storage | |
SU1425691A1 (en) | Interface | |
SU682900A1 (en) | Input-output channels and rapid-access memory inte rface | |
SU1205144A1 (en) | Device for distributing jobs to processors | |
SU1125626A1 (en) | Control device for servicing reguests | |
JPS6391756A (en) | Partial write instruction processing system for storage device | |
SU1374225A1 (en) | Multichannel priority device | |
SU760077A1 (en) | Information exchange device | |
SU1444800A1 (en) | Arrangement for interfacing processors through common storage in multiprocessor system | |
SU1161944A1 (en) | Device for modifying memory area address when debugging programs | |
SU881722A1 (en) | Interface | |
SU771655A1 (en) | Volume control device |