Способ организации выполнения операции умножения двух чисел в модулярно-позиционном формате представления с плавающей точкой на универсальных многоядерных процессорах, заключающийся в том, что:
универсальный многоядерный вычислитель содержит g k-разрядных вычислительных ядер, каждое из которых обеспечивает выполнение системы из f операций, в состав которых входят операции алгебраического умножения и алгебраического сложения над числами, представленными в позиционных целочисленных форматах данных;
при организации выполнения операций умножения каждое число, множитель и множимое, представляется в модулярно-позиционном формате с плавающей точкой в виде (1+k+q·n) - элементного вектора, где:
первый слева разряд s является старшим разрядом в формате числа и отводится под значение знака числа, причем если s=0, то число считается положительным, а если s=1, то число считается отрицательным;
следующие за первым разрядом s числа k разрядов отводятся под хранение позиционного порядка числа, представляющего собой целое двоичное число λ со знаком sλ, изменяющееся для конечных чисел с плавающей точкой в диапазоне λmin≤λ≤λmax и получаемое в результате преобразования числа из позиционного формата с плавающей точкой посредством вычисления выражения λ=е-t+1, где е определяет величину числа в двоичном позиционном формате с плавающей точкой в выражении (-1s·М·2е) при 0≤М<2, являющейся рациональной t-разрядной мантиссой числа в двоичном позиционном формате с плавающей точкой, λmin=2-2k-1, λmax=2k-1-2, при sλ=0 порядок λ считается положительным, а при sλ=1 порядок λ считается отрицательным;
следующие за (k+1) разрядами q·n разрядов, причем q≤k, отводятся для представления мантиссы числа
в модулярно-позиционном формате, причем данная мантисса представляется в системе остаточных классов с n основаниями р
1, р
2, …, p
n, n - количество знакопозиций мантиссы, q-разрядность каждой знакопозиции; причем, каждая i-ая знакопозиция, где 1≤i≤n, представляется целым неотрицательным числом m
i в двоичной позиционной системе счисления; значение m
i каждой i-ой знакопозиции определяется по выражению
, где М' - целое неотрицательное двоичное число, определяемое выражением М'=М·2
t-1, М - рациональная t-разрядная мантисса числа в двоичном позиционном формате с плавающей точкой,
- операция получения остатка от деления М' на i-oe основание p
i;
диапазон изменения модулярной мантиссы
в позиционной системе счисления определяется интервалом
;
значения порядка λ и мантиссы
положительных конечных чисел при s=0 в модулярно-позиционном формате [λ,s,〈m
1,m
2,…,m
n〉] находятся соответственно в следующих диапазонах: 2-2
k-1≤λ≤2
k-1-2, 〈0
1,0
2,…,0
n〉 ≤
≤ 〈(p
1-1),(p
2-1),…,(p
n-1)〉;
значения порядка λ и мантиссы
отрицательных конечных чисел при s=1 в модулярно-позиционном формате находятся соответственно в следующих диапазонах: 2-2
k-1≤λ≤2
k-1-2, 〈0
1,0
2,…,0
n〉 ≤
≤ 〈(p
1-1),(p
2-1),…,(p
n-1)〉;
значение положительной бесконечности представляется в модулярно-позиционном формате следующим образом: s=0, λ=λ
max+1=2
k-1-1,
;
значение отрицательной бесконечности представляется в модулярно-позиционном формате следующим образом: s=1, λ=λ
max+1=2
k-1-1,
;
для положительных нечисловых величин (NaN) в модулярно-позиционном формате [λ,s,〈m
1,m
2,…,m
n〉], при s=0, значение позиционного порядка λ определяется выражением λ=λ
max+1=2
k-1-1 а значения мантиссы
находятся в диапазоне 〈1
1,1
2,…,1
n〉 ≤
≤ 〈(p
1-1),(p
2-1),…,(p
n-1)〉;
для отрицательных нечисловых величин (NaN) в модулярно-позиционном формате, при s=1, значение позиционного порядка λ определяется выражением λ=λ
max+1=2
k-1-1, а значения мантиссы
находятся в диапазоне 〈1
1,1
2,…,1
n〉 ≤
≤ 〈(p
1-1),(p
2-1),…,(p
n-1)〉;
величины в модулярно-позиционном формате, имеющие значение позиционного порядка λ=λ
min-1=1-2
k-1, при изменении значений модулярной мантиссы в диапазоне 〈1
1,1
2,…,1
n〉 ≤
≤ 〈(p
1-1),(p
2-1),…,(p
n-1)〉, служат для расширенного кодирования исключительных ситуаций, таких как потеря или переполнение порядка, необходимость округления мантиссы и т.д., которые могут возникнуть в процессе вычислений;
по сигналу процессора, множитель
и множимое
, представленные в модулярно-позиционном формате с плавающей точкой, загружаются в универсальный k-разрядный процессор, содержащий g вычислительных ядер, следующим образом:
при условии, что g≥n+1, т.е. если число вычислительных ядер процессора превышает число оснований системы остаточных классов, используемых для представления модулярных мантисс
=〈
〉 и
=〈
〉 чисел А и В соответственно, то:
в первое ядро универсального многоядерного процессора загружают q-разрядные двоичные представления первых знакопозиций
и
модулярных мантисс
=〈
〉 и
=〈
〉 чисел А и В соответственно, а так же основание системы остаточных классов p
1;
параллельно с этим, во второе ядро универсального многоядерного процессора загружают q-разрядные двоичные представления вторых знакопозиций
и
модулярных мантисс
и
чисел А и В соответственно, а так же основание системы остаточных классово p
2; и т.д.
параллельно с этим, в n-е ядро универсального многоядерного процессора загружают q-разрядные двоичные представления n-х знакопозиций
и
модулярных мантисс
и
чисел А и В соответственно, а так же основание системы остаточных классово p
n;
параллельно с этим, в (n+1)-е ядро универсального многоядерного процессора загружают k-разрядные двоичные порядки λA и λB, а так же знаки sA и sB чисел А и В соответственно;
при условии, что g<n+1, т.е. если число оснований системы остаточных классов используемых для представления модулярных мантисс
=〈
〉 и
=〈
〉 чисел А и В соответственно равно числу вычислительных ядер универсального вычислителя, либо превышает его, то:
q-разрядные двоичные представления первых знакопозиций
и
модулярных мантисс
и
чисел А и В соответственно, а так же основание системы остаточных классов р
1 загружают в первое ядро универсального многоядерного процессора;
параллельно с этим, q-разрядные двоичные представления вторых знакопозиций
и
модулярных мантисс
и
чисел А и В соответственно, а так же основание системы остаточных классов р
2 загружают во второе ядро универсального многоядерного процессора; и т.д.,
параллельно с этим, q-разрядные двоичные представления (q-1)-х знакопозиций
и
модулярных мантисс
и
чисел А и В соответственно, а так же основание системы остаточных классов p
g-1 загружают в (g-1)-е ядро универсального многоядерного процессора;
q-разрядные двоичные представления g-ых знакопозиций
и
модулярных мантисс
и
чисел А и В соответственно, а так же основание системы остаточных классово загружают в первое ядро универсального многоядерного процессора;
q-разрядные двоичные представления (g+1)-х знакопозиций
и
модулярных мантисс
и
чисел А и В соответственно, а так же основание системы остаточных классов p
g+1 загружают во второе ядро универсального многоядерного процессора;
и т.д., пока не будут загружены n-е знакопозиций
и
модулярных мантисс
=〈
〉 и
=〈
〉 чисел A и В соответственно;
параллельно с этим, k-разрядные двоичные порядки λA и λB, а так же знаки sA и sB чисел А и В соответственно загружают в g-e ядро универсального многоядерного процессора;
после того, как множитель
и множимое
, представленные в модулярно-позиционном формате с плавающей точкой, загружены в универсальный k-разрядный процессор, содержащий g вычислительных ядер, операция их умножения выполняется следующим образом:
при условии, что g≥n+1, т.е. если число вычислительных ядер процессора превышает число оснований системы остаточных классов, используемых для представления модулярных мантисс
и
чисел А и В соответственно, то:
в первом вычислительном ядре процессора выполняется операция целочисленного умножения
по модулю р
1 q-разрядных двоичных представлений
и
модулярных мантисс
и
чисел А и В соответственно, путем нахождения значения
, где
- наибольшее целое, не превышающее
; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
параллельно с этим, во втором вычислительном ядре процессора выполняется операция умножения
по модулю р
2 q-разрядных двоичных представлений знакопозиции
и
модулярных мантисс
и
чисел А и В соответственно; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
и т.д.,
параллельно с этим, в n-м вычислительном ядре процессора выполняется операция умножения
по модулю p
n q-разрядных двоичных представлений знакопозиции
и
модулярных мантисс
и
чисел А и В соответственно; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
параллельно с этим, в (n+1)-м вычислительном ядре процессора выполняется сложение двоичных порядков λA и λB, а так же сложение по модулю два sC=|sA+sB|2 знаков sA и sB чисел А и В соответственно;
при условии, что g<n+1, т.е. если число оснований системы остаточных классов используемых для представления модулярных мантисс
и
чисел А и В соответственно равно числу вычислительных ядер универсального вычислителя, либо превышает его, и в каждое j-ое вычислительное ядро из первых (g-1) вычислительных ядер процессора загружено w
j знакопозиций
и
, i=0,1,…,w
1-1, то:
в первом вычислительном ядре процессора последовательно выполняются операции умножения
по модулям p
i·(g-1)+1, i=0,1,…,w
1-1, q-разрядных двоичных представлений всех w
1 загруженных в него знакопозиций
и
, i=0,1,…,w
1-1 модулярных мантисс
и
чисел A и B соответственно, путем нахождения значений
, i=0,1,…,w
1-1, где
- наибольшее целое, не превышающее
; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
параллельно с этим, во втором вычислительном ядре процессора последовательно выполняются операции умножения
по модулям p
i·(g-1)+2, i=0,1,…,w
2-1, q-разрядных двоичных представлений всех w
2 загруженных в него знакопозиций
и
, i=0,1,…,w
2-1 модулярных мантисс
и
чисел А и В соответственно; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
и т.д.,
параллельно с этим, в (g-1)-м вычислительном ядре процессора последовательно выполняются операции умножения
по модулям р
(i+1)·(g-1), i=0,1,…, w
g-1-1, q-разрядных двоичных представлений всех w
2 загруженных в него знакопозиций
, i=0,1,…,w
g-1-1 модулярных мантисс
и
чисел А и B соответственно; все операции являются целочисленными и выполняются в позиционной двоичной системе счисления;
параллельно с этим, в g-м вычислительном ядре процессора выполняется сложение двоичных порядков λA и λB, а так же сложение по модулю два sC=|sA+sB|2 знаков sA и sB чисел A и В соответственно;
в результате выполнения данных операций получается произведение
чисел
и
, представленное в модулярно-позиционном формате с плавающей точкой.