Изобретение относится к вычислительной технике и предназначено для построения на его основе специализированных ЭВМ.
Известны специализированные устройства, выполняющие триангуляцию матрицы (патент РФ N 1800463), решение систем линейных алгебраических уравнений (патент РФ N 1832301), решение систем линейных алгебраических уравнений с треугольной матрицей (патент РФ N 1803921), а также устройства для вращения вектора по алгоритму Волдера (авт. свид. СССР N 445042).
Основными недостатками этих устройств являются узкий функциональный состав выполняемых операций при значительных аппаратурных затратах, а также необходимость для вычисления модуля m-мерного вектора использовать последовательность из (m-1)-й операции плоского вращения.
Наиболее близким по технической реализации является устройство для определения модуля трехмерного вектора (авт. свид. СССР N 1205139), реализующее итерационный алгоритм перемещения трехмерного вектора с помощью последовательности из n преобразований отражения до его совпадения с осью абсцисс.
Одним из основных недостатков этого устройства является большое время определения модуля m-мерного вектора, которое равно порядка m/2 циклов по n итераций. Кроме того, при помощи этого устройства невозможно осуществить решение систем линейных алгебраических уравнений с треугольной матрицей (выполнить "обратный ход" для решения систем линейных алгебраических уравнений) и осуществить преобразование матрицы по методу Гаусса или Гаусса-Жордана. Между тем названные операции составляют математическое содержание значительной части практических задач.
Целью изобретения является расширение класса решаемых устройством задач путем введения в функциональный состав устройства операций для решения систем линейных алгебраических уравнений с треугольной матрицей и преобразования матрицы по методу Гаусса и Гаусса-Жордана, а также операции вычисления модуля m-мерного вектора за один цикл работы устройства.
Указанная цель достигается тем, что в устройство, содержащее три регистра, три дешифратора знака, шесть сумматоров-вычитателей, три сдвигателя, причем управляющие входы сдвигателей соединены с входом задания двоичного кода номера итерации, выход первого регистра соединен с информационным входом первого сдвигателя, дополнительно введены m-3 регистров, m-3 дешифраторов знака, 2m-7 сумматоров-вычитателей, m-1 схема ИСКЛЮЧАЮЩЕЕ ИЛИ, m+3 мультиплексора, где m размерность обрабатываемой матрицы, блок умножения, блок изменения знака числа, причем информационные входы всех регистров являются входами операндов спецпроцессора, входы синхронизации всех регистров соединены с входом синхронизации спецпроцессора, управляющий вход блока умножения подключен к входу задания двоичного кода номера итерации спецпроцессора, выход первого сдвигателя через блок изменения знака числа, управляющий вход которого соединен с выходом первого дешифратора знака, подключен к первому входу цепочки сумматоров-вычитателей, у которых вход первого слагаемого (уменьшаемого) j-го элемента (j 1,2,m-1) соединен с выходом (j-1)-го элемента, а вход второго слагаемого (вычитаемого) с выходом (j+1)-го регистра, выход последнего элемента цепочки подключен к информационному входу блока умножения, выход которого соединен с информационным входом второго сдвигателя, вход второго слагаемого (вычитаемого) первого выходного сумматора-вычитателя соединен с выходом второго сдвигателя, вход первого слагаемого (уменьшаемого) l-го выходного сумматора-вычитателя (l= 1,2,m) соединен с выходом l-го регистра, выход l-го выходного сумматора-вычитателя, кроме первого, подключен к l-му выходу спецпроцессора, вход l-го дешифратора знака является l-м входом анализа знака операнда спецпроцессора, выход первого дешифратора знака подключен к управляющему входу первого выходного сумматора-вычитателя, выход первого регистра через третий сдвигатель соединен с первым информационным входом m-го мультиплексора, второй информационный вход которого соединен с выходом блока умножения, а выход с входами второго слагаемого (вычитаемого) каждого выходного сумматора-вычитателя, кроме первого и второго, выход первого выходного сумматора-вычитателя соединен с вторым информационным входом (m+3)-го мультиплексора, первый информационный вход которого соединен с выходом первого регистра, а выход с первым выходом спецпроцессора, выход j-го дешифратора знака (j 2,3,m) соединен с вторым входом (j-1)-й схемы ИСКЛЮЧАЮЩЕЕ ИЛИ, второй вход которого соединен с выходом первого дешифратора знака, выход (j-1)-й схемы ИСКЛЮЧАЮЩЕЕ ИЛИ подключен к первому информационному входу (j-1)-го мультиплексора, второй информационный вход которого соединен с выходом j-го дешифратора знака, выход j-го мультиплексора (j=1,2,m-1) подключен к управляющему входу j-го сумматора-вычитателя в цепочке и к управляющему входу (j+1)-го выходного сумматора-вычитателя, кроме первого и второго, выход второго мультиплексора подключен к второму информационному входу (m+2)-го мультиплексора, первый информационный вход которого соединен с выходом первого мультиплексора, а выход с управляющим входом второго выходного сумматора-вычитателя, первый информационный вход (m+1)-го мультиплексора соединен с выходом m-го мультиплексора, второй информационный вход с входом задания двоичного кода веса обрабатываемого разряда спецпроцессора, а выход с входом второго слагаемого (вычитаемого) второго выходного сумматора-вычитателя, управляющие входы всех мультиплексоров соединены с входом задания двоичного кода режима работы спецпроцессора.
Блок изменения знака числа является известным техническим решением и, в частности, может быть выполнен в виде сумматора-вычитателя, на вход первого слагаемого (уменьшаемого) которого постоянно подается значение, равное нулю, вход второго слагаемого (вычитаемого) является информационным входом блока изменения знака числа, управляющий вход сумматора-вычитателя управляющим входом блока изменения знака числа, а выход сумматора-вычитателя выходом блока.
Блок умножения является известным техническим решением и предназначен для умножения входного числа в зависимости от номера итерации на одну из констант. Блок умножения на константу может, в частности, быть выполнен в виде устройства, состоящего из постоянного запоминающего устройства для хранения констант и умножителя, причем адресный вход запоминающего устройства является управляющим входом блока умножения, выход запоминающего устройства соединен с входом первого сомножителя, вход второго сомножителя которого является информационным входом блока умножения, а выход выходом блока умножения.
На фиг. 1 представлена схема матричного спецпроцессора, где 11.1m регистры операндов, 21.2m - дешифраторы знака, 31.32m-1 сумматоры-вычитатели, 41, 42, 43 сдвигатели, 5 -вход задания двоичного кода номера итерации, 61. 6m-1 схемы ИСКЛЮЧАЮЩЕЕ ИЛИ, 71.7m+3 мультиплексоры, 8 блок умножения, 9 блок изменения знака числа, 101.10m входы операндов, 11 вход синхронизации, 121. 12m выходы спецпроцессора, 131.13m входы анализа знака операнда, 14 вход задания двоичного кода веса обрабатываемого разряда, 15 вход задания двоичного кода режима работы спецпроцессора.
На фиг. 2 представлена схема для преобразования вектора в конвейерном режиме, на котором U1. Un устройства, изображенные на фиг. 1, X входной вектор размерности m, Y результирующий вектор той же размерности, X(j) вектор, обрабатываемый устройством Uj, Z - шина знаков операндов на n итерациях, Z(j) шина знаков операндов на j-й итерации.
На фиг. 3 представлена схема для триангуляции матрицы A(mxm), столбцы которой поданы на устройства U1.Um, каждое из которых является устройством, изображенным на фиг. 2.
На фиг. 4 представлена схема для решения систем линейных алгебраических уравнений с треугольной матрицей, где U1.U3 устройства, каждое из которых является устройством, изображенным на фиг. 2, aij - элементы матрицы системы до обработки, элементы матрицы системы после обработки, bi, элементы столбца свободных членов до и после обработки соответственно.
Спецпроцессор содержит m регистров 11.1m, 2m-1 сумматоров-вычитателей 31.32m-1, m дешифраторов знака 21.2m, m-1 схему ИСКЛЮЧАЮЩЕЕ ИЛИ 61.6m-1, m+3 мультиплексора 71.7m+3, три сдвигателя 41, 42, 43, блок изменения знака числа 9, блок умножения 8 на одну из n констант, m входов операндов 101.10m, m входов анализа знака операнда 131.13m, выходов 121.12m, вход задания двоичного кода номера итерации 5, вход задания двоичного кода режима работы 15, вход задания двоичного кода веса обрабатываемого разряда 14, причем входы регистров 11.1m являются входами операндов 101.10m, а выходы подключены к входам первого слагаемого (уменьшаемого) выходных сумматоров-вычитателей 3m. 32m-1 соответственно, входы дешифраторов знака 21.2m являются соответственно входами анализа знака операнда 131.13m, выходы дешифраторов знака 22.2m соединены с вторыми входами схем ИСКЛЮЧАЮЩЕЕ ИЛИ 61.6m-1 соответственно, первые входы этих схем подключены к выходу дешифратора знака 21, а выходы соединены с первыми информационными входами мультиплексоров 71.7m-1 соответственно, вторые информационные входы этих мультиплексоров соединены с выходами дешифраторов знака 22.2m соответственно, вход задания двоичного кода номера итерации 5 подключен к управляющим входам сдвигателей 41, 42, 43 и блока умножения 8, выход регистра 11 подключен через сдвигатель 41 и блок изменения знака числа 9 к входу первого слагаемого (уменьшаемого) сумматора-вычитателя 31, вход второго слагаемого (вычитаемого) которого соединен с выходом регистра 22, управляющий вход с выходом мультиплексора 71, а выход с входом первого слагаемого (уменьшаемого) сумматора-вычитателя 32, сумматоры-вычитатели 31.3m-1 соединены в цепочку, j-й элемент которой входом первого слагаемого (уменьшаемого) подсоединен к выходу (j-1)-го элемента, входом второго слагаемого (вычитаемого) к выходу (j+1)-го регистра, управляющим входом к выходу мультиплексора 7j, а входом к входу первого слагаемого (уменьшаемого) (j+1)-го элемента, выход сумматора-вичитателя 3m-1 соединен с информационным входом блока умножения 8, выход которого через сдвигатель 42 подключен к входу второго слагаемого (вычитаемого) сумматора-вычитателя 3m и непосредственно к первому информационному входу мультиплексора 7m, выход сумматор-вычислителя 7m подключен к второму информационному входу мультиплексора 7m+3, первый информационный вход которого соединен с выходом первого регистра, а выход с первым выходом спецпроцессора 121, второй информационный вход мультиплексора 7m соединен через сдвигатель 43 с выходом регистра 11, а выход подключен к первому информационному входу мультиплексора 7m+1 и к входам второго слагаемого (вычитаемого) сумматоров-вычитателей 3m+2.32m-1, второй информационный вход мультиплексора 7m+1 подключен к входу задания двоичного кода веса обрабатываемого разряда 14, а выход к входу второго слагаемого (вычитаемого) сумматора-вычитателя 3m+1, управляющие входы сумматоров-вычитателей 3m+2.32m-1 подключены к выходам мультиплексоров 72.7m-1 соответственно, а управляющий вход сумматора-вычитателя 3m+1 подключен к выходу мультиплексора 7m+2, первый информационный вход которого соединен с выходом мультиплексора 71, а второй с выходом мультиплексора 72, управляющие входы всех мультиплексоров соединены с входом задания двоичного кода режима работы спецпроцессора 15, выходы сумматоров-вычитателей 3m+1.32m-1 являются выходами спецпроцессора 102.10m соответственно, выход дешифратора знака 21 соединен с управляющим входом блока изменения знака числа 9 и управляющим входом сумматора-вычитателя 3m, входы синхронизации регистров 11.1m соединены с входом синхронизации спецпроцессора 11.
Спецпроцессор может работать в одном из трех режимов.
Работу спецпроцессора в режимах 1 и 2 можно описать следующими выражениями:
где i номер итерации.
Значения величин a и сj определяются режимом работы спецпроцессора.
В режиме 1
В этом режиме алгоритм (1) описывает одного из n преобразований отражения, в результате которых за один цикл работы устройства исходных вектор X0 совмещается с первой из m координатных осей, первый элемент вектора становится равным модулю вектора, а остальные координаты вектора будут равны нулю.
В режиме 2
В этом режиме алгоритм (1) описывает одно из n преобразований вектора по методу Гаусса (или Гаусса-Жордана), в результате которых исходных исходный вектор X0(x
Режим 3 является вспомогательным и предназначен для выполнения операции деления на этом же устройстве, что необходимо для решения систем линейных алгебраических уравнений с треугольной матрицей.
Работу спецпроцессора в режиме 3 можно описать следующими выражениями:
где
В этом режиме исходный вектор X0(x
Рассмотрим работу спецпроцессора на i-ой итерации. Операнды-компоненты вектора Xi заносятся в регистры 11.1m по входам 101.10m соответственно и фиксируются в этих регистрах по сигналу синхронизации, поступающему по входу 11 спецпроцессора. На входы 131.13m подаются операнды, по знакам которых дешифраторы знака 21.2m и схемы ИСКЛЮЧАЮЩЕЕ ИЛИ 61.6m-1 вырабатывают сигналы управления сумматорами-вычитателями согласно соотношениям (2), (3), (5).
Мультиплексоры 71.7m-1 и 7m+2 служат для коммутации выработанных сигналов управления сумматорами-вычитателями в соответствии с режимом, двоичный код которого задается по входу 15. Сдвигатели 41 и 42 служат для сдвига числа на i разрядов, поэтому на выходе блока изменения знака числа 9 получится величина -2-i•x1•C1, к которой на сумматоре-вычитателе 31 прибавится (вычтется) величина x2•c2. Таким образом, на выходе сумматора-вычитателя 3m-1 получится выражение -2-i•x1•c1+x2•c2 + + xm•cm, которое поступит на вход блока умножения 8. Блок умножения предназначен для умножения входного числа в зависимости от номера инерции на одну из n констант -2•(m-1+2-i)-1. На выходе блока умножения будет получено значение a, которое через сдвигатель 42, формирующий значение a•2-i, подается на сумматор-вычитатель 3m. Полученное таким образом значение a соответствует режиму 1. Для режимов 2 и 3 значение a, равное x1•2-i, формируется на выходе сдвигателя 43. Мультиплексор 7m выбирает одно из этих значений в зависимости от режима. С выхода мультиплексора 7m значение a поступает на входы второго слагаемого (вычитаемого) сумматоров-вычитателей 7m+2.72m-1 непосредственно, a на соответствующий вход сумматора-вычитателя 3m+1 через мультиплексор 7m+1, на второй информационный вход которого подается значение d с входа задания двоичного кода веса обрабатываемого разряда 14. Мультиплексор 7m+1 в режимах 1 и 2 подключает на вход второго слагаемого (вычитаемого) сумматора-вычитателя 3m+1 значение a, а в режиме 3 значение d согласно (4). В режимах 1 и 2 сумматоры-вычитателя 3m.32m-1 построчно реализуют соотношения (1), а в режиме 3 сумматоры-вычитатели 3m.3m+2 построчно реализуют соотношения (4). Значения Y2. Ym, получаемые на выходах сумматоров-вычислителей 3m+1.32m-1 соответственно, подаются непосредственно на выходы спецпроцессора, а значение Y1 поступает на выход спецпроцессора через мультиплексор 7m+3, который соединяет соответствующий выход с выходом сумматора-вычитателя 3m в режиме 1 и с выходом регистра 11 в режимах 2 и 3. Все мультиплексоры управляются от входа задания двоичного кода режима работы спецпроцессора 15.
На этом работа в i-ой итерации заканчивается. Следующую итерацию можно выполнить в последовательном режиме в этом же устройстве, если предварительно соединить выходы 12j с входами 10j(j=1,2,m), или в конвейерном режиме с помощью n устройств, как это показано на фиг.2. Значения, подаваемые на входы 131.13m j-го устройства (j=1,2,n) зависят от режима работы устройства, а также от того, обрабатывается ли на устройстве столбец матрицы, в котором производится обнуление внедиагональных элементов на текущем шаге (главный столбец), или на устройстве обрабатывается один из прочих столбцов матрицы (зависимый столбец) для сохранения линейности преобразования.
В режимах 1 и 2 при обработке главного столбца входы 131.13m j-го устройства соединяются с входами 10110m этого устройства соответственно, а при обработке зависимого столбца с входами 101.10m устройства, обрабатывающего главный столбец. В режиме 3 входы 131 и 133 j-го устройства соединяются соответственно с входами 101 и 103 этого устройства. Сигналы, подаваемые на входы 131.13m j-го устройства образуют шины Z(j) и общую шину Z, показанные на фиг.2.
На фиг. 3 представлена схема соединения m устройств, каждое из которых представляет собой устройство, показанное на фиг.2. Эта схема предназначена для приведения матрицы A ({aij}) размерности (mxm) к верхнетреугольному виду путем ортогональных преобразований отражения (в режиме 1) или путем разложения матрицы на треугольные множители по методу Гаусса (в режиме 2). При этом устройство U1 обрабатывает главный столбец, а устройства U2.Um зависимые столбцы матрицы. Входы Z каждого устройства соединены по описанным выше правилам и образуют шину Z на фиг.3. В результате преобразования все элементы первого столбца матрицы, кроме , будут равны нулю, а элемент будет равен модулю вектора (в режиме 1) или a11 (в режиме 2). После исключения (обнуления) поддиагональных элементов первого столбца та же процедура проводится с матрицей порядка (m-1) для исключения поддиагональных элементов второго столбца.
После (m-1)-го аналогичного шага полученная матрица будет верхнетреугольной, после подобных манипуляций в режиме 1 со строками матрицы - двухдиагональной.
Если в режиме 2 на каждом шаге не уменьшать размерность пространства, а использовать высвобождающиеся модули для исключения также и наддиагональных элементов, то полученная матрица будет диагональной начальной (метод Гаусса-Жордана).
Для триангуляции матрицы при решении систем линейных алгебраических уравнений необходимо добавить устройство Um+1, обрабатывающее зависимый столбец в выбранном режиме, для обработки столбца свободных членов аналогично столбцам матрицы.
На фиг. 4 представлена схема для выполнения "обратного хода" (получения решения из треугольной или диагональной матрицы) при решении систем линейных алгебраических уравнений. Устройства U1, U2, U3 представляют собой устройства, показанные на фиг.2. Устройство U1 работает в режиме 3, на его вход X подается вектор (аmm, O, bm), где amm элемент матрицы системы, bm элемент столбца свободных членов, на выходе Y устройства получается вектор, первым элементом которого является значение элемента вектора решения xm=bm/amm. В случае диагональной матрицы для получения вектора решения достаточно проделать m подобных операций. В случае треугольной матрицы после получения xm необходимо перейти к матрице размерности (m-1), преобразовав при этом вектор свободных членов. Для этого служат устройство U2, обрабатывающее зависимый столбец-вектор (xm, b1, bm-1), и устройство U3, обрабатывающее главный столбец-вектор (1, а1m, am-1m). В результате на выводах устройства U2 получается вектор Y (xm, b1-a1mxm, bm-1-am-1mxm).
Устройство может также быть использовано для обращения матрицы путем решения m систем линейных алгебраических уравнений с одинаковой матрицей и m различными столбцами свободных членов, а также для нахождения определителя матрицы и решения некоторых других задач линейной алгебры.
Эффективность изобретения заключается в расширении класса решаемых устройством задач, достигаемом за счет незначительного увеличения затрат оборудования.
название | год | авторы | номер документа |
---|---|---|---|
УСТРОЙСТВО ДЛЯ ВЫЧИСЛЕНИЯ МОДУЛЯ M-МЕРНОГО ВЕКТОРА | 1995 |
|
RU2080650C1 |
УСТРОЙСТВО ДЛЯ ВЫЧИСЛЕНИЯ МОДУЛЯ M-МЕРНОГО ВЕКТОРА | 1992 |
|
RU2029356C1 |
Устройство для определения модуля трехмерного вектора | 1984 |
|
SU1205139A1 |
Устройство для определения модуля трехмерного вектора | 1983 |
|
SU1142830A1 |
Устройство для поворота вектора с коррекцией | 1980 |
|
SU951299A1 |
Вычислительное устройство | 1983 |
|
SU1167604A1 |
Устройство для преобразования координат | 1989 |
|
SU1695294A1 |
Устройство для выполнения векторно-скалярных операций над действительными числами | 1990 |
|
SU1718215A1 |
Вычислительное устройство | 1983 |
|
SU1164696A1 |
Устройство для вычисления функций | 1989 |
|
SU1705822A1 |
Изобретение относится к вычислительной технике и предназначено для построения на его основе специализированных ЭВМ. Целью изобретения является расширение класса решаемых задач. Поставленная цель достигается тем, что матричный спецпроцессор содержит m регистров, m дешифраторов знака, 2m-1 сумматоров-вычитателей, m-1 схем ИСКЛЮЧАЮЩЕЕ ИЛИ, три сдвигателя, m+3 мультиплексора (m - размерность обрабатываемой матрицы). 4 ил.
Матричный спецпроцессор, содержащий три регистра, три дешифратора знака, шесть сумматоров-вычитателей, три сдвигателя, причем управляющие входы сдвигателей соединены с входом задания двоичного кода номера итерации спецпроцессора, выход первого регистра соединен с информационным входом первого сдвигателя, отличающийся тем, что в него введены m-3 регистров, m-3 дешифраторов знака, 2m-7 сумматоров-вычитателей, m-1 схем исключающее или, m+3 мультиплексоров, где m размерность обрабатываемой матрицы, блок умножения, блок изменения знака числа, причем информационные входы всех регистров являются входами операндов спецпроцессора, входы синхронизации всех регистров соединены с входом синхронизации спецпроцессора, управляющий вход блока умножения подключен к входу задания двоичного кода номера итерации спецпроцессора, выход первого сдвигателя через блок изменения знака числа, управляющий вход которого соединен с выходом первого дешифратора знака, подключен к первому входу цепочки сумматоров-вычитателей, у которой вход первого слагаемого (уменьшаемого) j-го элемента (j=1,2,m-1) соединен с выходом (j-1)-го элемента, а вход второго слагаемого (вычитаемого) с выходом (j+1)-го регистра, выход последнего элемента цепочки подключен к информационному входу блока умножения, выход которого соединен с информационным входом второго сдвигателя, вход второго слагаемого (вычитаемого) первого выходного сумматора-вычитателя соединен с выходом второго сдвигателя, вход первого слагаемого (уменьшаемого) i-го выходного сумматора-вычитателя (j 1, 2, m) соединен с выходом i-го регистра, выход i-го выходного сумматора вычитателя, кроме первого, подключен к i-му выходу спецпроцессора, вход i-го дешифратора знака является i-м входом анализа знака операнда спецпроцессора, выход первого дешифратора знака подключен к управляющему входу первого выходного сумматора-вычитателя, выход первого регистра через третий сдвигатель соединен с первым информационным входом m-го мультиплексора, второй информационный вход которого соединен с выходом блока умножения, а выход с входами второго слагаемого (вычитаемого) каждого выходного сумматора-вычитателя, кроме первого и второго, выход первого выходного сумматора-вычитателя соединен с вторым информационным входом (m + 3)-го мультиплексора, первый информационный вход которого соединен с выходом первого регистра, а выход с первым выходом спецпроцессора, выход j-го дешифратора знака (j 2,3,m) соединен с вторым входом (j 1)-й схемы ИСКЛЮЧАЮЩЕЕ ИЛИ, второй вход которой соединен с выходом первого дешифратора знака, выход (j 1)-й схемы ИСКЛЮЧАЮЩЕЕ ИЛИ подключен к первому информационному входу (j 1)-го мультиплексора, второй информационный вход которого соединен с выходом j-го дешифратора знака, выход j-го мультиплексора (j 1,2,m 1) подключен к управляющему входу j-го сумматора-вычитателя в цепочке и к управляющему входу (j + 1)-го выходного сумматора-вычитателя, кроме первого и второго, выход второго мультиплексора подключен к второму информационному входу (m + 2)-го мультиплексора, первый информационный вход которого соединен с выходом первого мультиплексора, а выход с управляющим входом второго выходного сумматора-вычитателя, первый информационный вход (m + 1)-го мультиплексора соединен с выходом m-го мультиплексора, второй информационный вход с входом задания двоичного кода веса обрабатываемого разряда спецпроцессора, а выход с входом второго слагаемого (вычитаемого) второго выходного сумматора-вычитателя, управляющие входы всех мультиплексоров соединены с входом задания двоичного режима работы спецпроцессора.
Устройство для треугольного разложения матриц | 1989 |
|
SU1800463A1 |
Приспособление для точного наложения листов бумаги при снятии оттисков | 1922 |
|
SU6A1 |
Устройство для определения модуля трехмерного вектора | 1984 |
|
SU1205139A1 |
Приспособление для точного наложения листов бумаги при снятии оттисков | 1922 |
|
SU6A1 |
Авторы
Даты
1997-05-20—Публикация
1994-08-23—Подача