RU2488161C1 - Устройство перестановок и сдвигов битов данных в микропроцессорах - Google Patents

Устройство перестановок и сдвигов битов данных в микропроцессорах Download PDF

Info

Publication number
RU2488161C1
RU2488161C1 RU2011145864/08A RU2011145864A RU2488161C1 RU 2488161 C1 RU2488161 C1 RU 2488161C1 RU 2011145864/08 A RU2011145864/08 A RU 2011145864/08A RU 2011145864 A RU2011145864 A RU 2011145864A RU 2488161 C1 RU2488161 C1 RU 2488161C1
Authority
RU
Russia
Prior art keywords
input
bit
output
data
bits
Prior art date
Application number
RU2011145864/08A
Other languages
English (en)
Other versions
RU2011145864A (ru
Inventor
Леонид Сергеевич Сотов
Original Assignee
Федеральное Государственное Бюджетное Образовательное Учреждение Высшего Профессионального Образования "Саратовский Государственный Университет Имени Н.Г. Чернышевского"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Федеральное Государственное Бюджетное Образовательное Учреждение Высшего Профессионального Образования "Саратовский Государственный Университет Имени Н.Г. Чернышевского" filed Critical Федеральное Государственное Бюджетное Образовательное Учреждение Высшего Профессионального Образования "Саратовский Государственный Университет Имени Н.Г. Чернышевского"
Priority to RU2011145864/08A priority Critical patent/RU2488161C1/ru
Publication of RU2011145864A publication Critical patent/RU2011145864A/ru
Application granted granted Critical
Publication of RU2488161C1 publication Critical patent/RU2488161C1/ru

Links

Images

Landscapes

  • Electronic Switches (AREA)

Abstract

Изобретение относится к средствам перестановок и сдвигов битов данных в микропроцессорах. Технический результат заключается в увеличении скорости выполнения операций. Устройство содержит n-разрядный вход данных X1-Xn, n-разрядный выход данных Y1-Yn, n-разрядный вход битов маскирования F1-Fn, m-разрядный вход кода управления устройства C1,1-Cn/2,k, где m=n/2k, k=log2(n), k-разрядный вход значения числа сдвига данных A0-Ak-1, бинарные входы кодов управления режимом функционирования устройства: AOR, RL, AMUX, AIOR, AOUT, АС. Устройство включает многоуровневую коммутационную сеть baseline или ibaseline 1, блок формирования битов маскирования и управления, n-разрядный мультиплексор входных данных, n-разрядный мультиплексор выходных данных, n-разрядный блок маскирования данных на входе, n-разрядный блок маскирования данных на выходе, m-разрядный мультиплексор битов управления, n-разрядный входной соединитель и n-разрядный выходной соединитель. 7 з.п. ф-лы, 9 ил., 2 табл.

Description

Устройство относится к области преобразования информации и может быть использовано в микропроцессорах вычислительной техники.
Известен метод и система для осуществления перестановок на базе сетей butterfly (патент US 6922472, МПК H04L 9/34 (20060101); 380/37; Method and system for performing permutations using permutation instructions based on butterfly networks / Lee; Ruby В., Yang; Xiao, Vachharajani; Manish. July 26, 2005). Устройство включает в себя две многоуровневых коммутационных сети с топологией butterfly и инверсной топологией butterfly (ibutterfly). Переключатели сетей управляются битами, поступающими с внешних регистров. Произвольная перестановка битов входных данных осуществляется с использованием двух инструкций bfly и ibfly.
Недостатком предложенного решения является сложность исполнения, связанная с необходимостью использования двух различных сетей и команд для выполнения произвольной перестановки битов данных. Кроме этого устройство не позволяет непосредственно выполнить инструкции циклических и логических сдвигов данных, а также инструкции извлечения и размещения в заданных позициях групп битов данных.
Известен метод и система для осуществления перестановок на базе модифицированных сетей omega и flip (патент US 6952478, МПК G06F 7/76 (20060101); 380/37; Method and system for performing permutations using permutation instructions based on modified omega and flip stages/Lee; Ruby В., Yang; Xiao. October 4, 2005). Устройство включает в себя две многоуровневые коммутационные сети с топологией omega и flip (ibutterfly). Переключатели сетей управляются битами, поступающими с внешних регистров. Произвольная перестановка битов входных данных осуществляется с использованием двух инструкций, связанных с прохождением данных через сети omega и flip.
Недостатком предложенного решения является сложность исполнения, связанная с необходимостью использования двух различных сетей и команд для выполнения произвольной перестановки битов данных. Кроме этого устройство не позволяет непосредственно выполнить инструкции циклических и логических сдвигов данных, а также инструкции извлечения и размещения в заданных позициях групп битов данных.
Известен универсальный блок выполнения сдвигов и перестановок, описанный в работе Hilewitz Y., Lee R.A New Basis for Shifters in General-Purpose Processors for Existing and Advanced Bit Manipulations. / IEEE Transactions on Computing. 2009. Vol.58. №.8. P.1035-1048.
Блок включает в себя две многоуровневые коммутационные сети с топологией butterfly и инверсной топологией butterfly (ibutterfly), формирователь битов управления переключателями сетей, схемы мультиплексирования и маскирования входных и выходных битов данных. Блок позволяет выполнять инструкции циклических и логических сдвигов вправо и влево, команды рех (parallel extract) и pdep (parallel deposit) извлечения и размещения в определенных позициях групп битов входных данных, произвольные перестановки битов входных данных за две команды bfly и ibfly с использованием многоуровневых коммутационных сетей butterfly и ibutterfly.
Недостатком данного решения является необходимость использования двух многоуровневых коммутационных сетей и двух команд для выполнения произвольной перестановки битов данных. Кроме этого для выполнения инструкций рех и pdep также требуется использование двух коммутационных сетей butterfly и ibutterfly.
Задачей настоящего решения является упрощение аппаратурной сложности устройства для выполнения произвольных перестановок, циклических и логических сдвигов данных, операций извлечения и размещения в заданных позициях групп битов данных за счет использования только одной многоуровневой коммутационной сети с топологией baseline или ibaseline.
Техническим результатом является упрощение конструкции устройства при сохранении высокой скорости выполнения операций.
Поставленная задача достигается тем, что устройство перестановок и сдвигов битов данных в микропроцессорах согласно решению включает многоуровневую коммутационную сеть baseline или обратную многоуровневую коммутационную сеть ibaseline, с n-разрядным входом данных X1-Xn, n-разрядным выходом данных Y1-Yn, m-разрядным входом C1,1-Cn/2,k кода управления сетью; устройство также включает n-разрядный мультиплексор 2→1 входных данных с первым n-разрядным входом X1,1-X1,n, вторым n-разрядным входом X2,1-X2,n, входом управления A, соединенным с бинарным входом AOR управления маскированием на выходе и мультиплексором входных данных устройства, n-разрядным выходом Y1-Yn, соединенным с n-разрядным входом данных X1-Xn многоуровневой коммутационной сети; устройство также включает n-разрядный входной соединитель с n-разрядным входом X1-Xn и n-разрядным выходом Y1-Yn, соединенным с первым n-разрядным входом X1,1-X1,n n-разрядного мультиплексора 2→1 входных данных, входной соединитель обеспечивает фиксированные соединения входных и выходных разрядов; устройство также включает n-разрядный блок маскирования данных на входе с первым n-разрядным входом данных X1-Xn, вторым n-разрядным входом F1-Fn, n-разрядным выходом Y1-Yn, соединенным с n-разрядным входом X1-Xn входного соединителя и со вторым n-разрядным входом X2,1-X2,n, n-разрядного мультиплексора 2→1 входных данных; устройство также включает m-разрядный мультиплексор 2→1 битов управления с входом управления AC, первым m-разрядным входом C1,1,1-C1,n/2,k битов управления, вторым m-разрядным входом C2,1,1-C2,n/2,k битов управления, m-разрядным выходом Y1,1-Yn/2,k, соединенным с m-разрядным входом C1,1-Cn/2,k кода управления сетью; устройство также включает блок формирования битов маскирования и управления, с бинарным входом AOR, соединенным с бинарным входом управления маскированием на выходе и мультиплексором входных данных устройства, бинарным входом RL управления направлением сдвига данных, бинарным входом AMUX управления мультиплексором битов маскирования, бинарным входом AIOR управления маскированием на входе, n-разрядным входом F1-Fn битов маскирования, k-разрядным входом A0-Ak-1 значения числа сдвига данных, n-разрядным выходом FI1-FIn битов маскирования входных данных, соединенным со вторым n-разрядным входом F1-Fn блока маскирования данных на входе, n-разрядным выходом FO1-FOn битов маскирования выходных данных, (n-1)-разрядным выходом С1-Cn-1 кода маскирования данных на входе, (n-1)-разрядным выходом C1-Cn-1 кода управления сдвигом, соединенным с вторым m-разрядным входом С2,1,1-C2,n/2,k битов управления мультиплексора 2→1 битов управления; устройство также включает n-разрядный блок маскирования данных на выходе с первым n-разрядным входом Х1-Xn, соединенным с n-разрядным выходом данных Y1-Yn многоуровневой коммутационной сети, вторым n-разрядным входом F1-Fn, соединенным с n-разрядным выходом битов маскирования выходных данных FO1-FOn, n-разрядным выходом Y1-Yn; устройство также включает n-разрядный выходной соединитель с n-разрядным выходом Y1-Yn, n-разрядным входом Х1-Xn, соединенным с n-разрядным выходом Y1-Yn n-разрядного блока маскирования данных на выходе, выходной соединитель обеспечивает фиксированные соединения входных и выходных разрядов; устройство также включает n-разрядный мультиплексор 2→1 выходных данных с первым n-разрядным входом X1,1-X1,n, соединенным с n-разрядным выходом Y1-Yn n-разрядного блока маскирования данных на выходе, вторым n-разрядным входом X2,1-X2,n, соединенным с n-разрядным выходом Y1-Yn n-разрядного выходного соединителя, входом управления A, соединенным с бинарным входом управления мультиплексором выходных данных AOUT устройства, n-разрядным выходом данных Y1-Yn. При использовании сети baseline бит i-го разряда Ci, i = 1, n 1 ¯
Figure 00000001
кода управления сдвигом подают на входы разрядов C2,q,r второго m-разрядного входа мультиплексора битов управления, где индекс q - целое число и INT(i-2r-1)·2k-r<q<(INT((i-2r-1))+l)·2k-r+1, r=INT(log2(i))+1, INT - функция, выделяющая целую часть аргумента. При использовании сети ibaseline на входы разрядов C2,q,j, где j = 1, k ¯
Figure 00000002
, q = 1, n / 2 ¯
Figure 00000003
, второго m-разрядного входа мультиплексора битов управления подают бит i-го разряда Ci (n-1)-разрядного выхода C1-Cn-1 кода управления сдвигом, причем i=mod(q-1,2j-1)+2j-1, где mod(q-1,2j-1) - функция, вычисляющая число q-1 по модулю 2j-1. Блок формирования битов маскирования и управления включает первый блок побитовой дизъюнкции с n-разрядным входом данных X1-Xn, соединенным с n-разрядным входом F1-Fn битов маскирования, n-разрядным выходом данных Y1-Yn, и входом AOR, первый блок побитовой дизъюнкции осуществляет функции побитовое логическое ИЛИ Yi=Xi∨AOR, где i = 1, n ¯
Figure 00000004
; блок формирования битов маскирования и управления также включает n-разрядный мультиплексор битов маскирования, с выходом FO1-FOn, первым n-разрядным входом X1,1-X1,n, вторым n-разрядным входом X2,1-X2,n, соединенным выходом Y1-Yn первого блока побитовой дизъюнкции, входом AMUX, блок формирования битов маскирования и управления также включает n логических инверторов D1-Dn и n-1 модуль формирования битов кода управления сдвигом Mi,j, где i = 1,2 j 1 ¯
Figure 00000005
, j = 1, k ¯
Figure 00000006
, каждый из которых имеет три бинарных входа f, ci, rotr, три бинарных выхода c, f1, f2, и выполняет логические функции: c = f c i f c i ¯
Figure 00000007
, f 1 = ( r o t r ¯ f c i ¯ ) ( f c i ¯ ) ¯
Figure 00000008
, f 2 = ( r o t r f c i ¯ ) ( f c i ¯ ) ¯
Figure 00000009
, входы rotr всех модулей Mi,j соединены с входом RL, модули Mi,j соединены так, что образуют двоичное дерево с k уровнями, при этом на уровне j содержится 2j-1 модулей Mi,j, причем выход с каждого из модулей Mi,j соединен с выходом Cp блока формирования битов маскирования и управления, где p=2j-1+i-1, выход f1 каждого модуля Mi,j, расположенного на уровне j соединен с входом f модуля M2i-1,j+,1, расположенного на уровне j+1, выход f2 каждого модуля Mi,j, расположенного на уровне j, соединен с входом f модуля M2i,j+1, расположенного на уровне j+1, вход f модуля M1,1 предназначен для сигнала с низким логическим уровнем, вход ci каждого модуля Mi,j, расположенного на уровне j, соединен с входом разряда Aj-1 входа A0-Ak-1, выход f1 каждого модуля Mi,k, расположенного на k-ом уровне, соединен с входом логического инвертора D2i-1, выход f2 каждого модуля Mi,k, расположенного на k-ом уровне, где i = 1, n / 2 ¯
Figure 00000010
, соединен с входом логического инвертора D2i каждый выход логического инвертора Di, где i = 1, n ¯
Figure 00000004
соединен с разрядом X1,i, первого входа мультиплексора битов маскирования; блок формирования битов маскирования и управления включает второй блок побитовой дизъюнкции с n-разрядным входом данных X1-Xn, соединенным с n-разрядным входом F1-Fn битов маскирования, выходом FI1-FIn, входом AIOR, второй блок побитовой дизъюнкции осуществляет функции побитовое логическое ИЛИ Yi=Xi∨AIOR, где i = 1, n ¯
Figure 00000004
. Многоуровневая коммутационная сеть baseline состоит из переключателей Ti,j, где i = 1, n / 2 ¯
Figure 00000011
, j = 1, k ¯
Figure 00000012
, расположенных в матричном порядке по n/2 линиям и k=log2n уровням, каждый переключатель имеет два бинарных входа X1, Х2, два бинарных выхода Y1, Y2 и бинарный вход управляющего сигнала C, каждый переключатель реализует логические функции Y 1 = C X 1 C ¯ X 2
Figure 00000013
, Y 2 = C ¯ X 1 C X 2
Figure 00000014
, бинарные входы управляющих сигналов переключателей сети образуют m-разрядный вход C1,1-Cn/2,k кода управления многоуровневой коммутационной сетью baseline, причем бинарный вход C переключателя Ti,j, где i = 1, n / 2 ¯
Figure 00000011
, j = 1, k ¯
Figure 00000015
, соединен с входом разряда Ci,j кода управления многоуровневой коммутационной сетью baseline, каждый переключатель сети j-го уровня, где j = 1, k 1 ¯
Figure 00000016
, расположенный на линии с номером i, соединен первым выходом Y1 с первым входом X1 при нечетном i или со вторым входом X2 при четном i переключателя j+1 уровня, расположенного на линии с номером u i 1 = I N T ( i + 1 2 ) + 2 k j 1 I N T ( i 2 j 1 ( 2 k 1 + 1 ) )
Figure 00000017
, а вторым выходом Y2 с первым входом X1 при нечетном i или со вторым входом X2 при четном i переключателя j+1 уровня сети, расположенного на линии с номером u i 2 = I N T ( i + 1 2 ) + 2 k j 1 I N T ( i 2 j 1 ( 2 k 1 + 1 ) ) + 2 k j 1
Figure 00000018
, где INT - функция вычисления целой части от аргумента; первые входы X1 переключателей первого уровня Ti,1 где i = 1, n / 2 ¯
Figure 00000011
, являются входами нечетных разрядов X2i-1 n-разрядного входа сети baseline, вторые входы X2 переключателей первого уровня Ti,1, где i = 1, n / 2 ¯
Figure 00000011
, являются входами четных разрядов X2i, n-разрядного входа сети baseline, первые выходы Y1 переключателей последнего уровня Ti,k, где i = 1, n / 2 ¯
Figure 00000011
, являются выходами нечетных разрядов Y2i-1 n-разрядного выхода сети baseline, вторые выходы Y2 переключателей последнего уровня Ti,k где i = 1, n / 2 ¯
Figure 00000011
, являются выходами четных разрядов Y2i, n-разрядного выхода сети baseline. Обратная многоуровневая коммутационная сеть ibaseline состоит из переключателей Ti,j, где i = 1, n / 2 ¯
Figure 00000011
, j = 1, k ¯ ,
Figure 00000019
расположенных в матричном порядке по n/2 линиям и k=log2 n уровням, каждый переключатель имеет два бинарных входа X1, X2, два бинарных выхода Y1, Y2 и бинарный вход управляющего сигнала C, каждый переключатель реализует логические функции Y 1 = C X 1 C ¯ X 2
Figure 00000013
, Y 2 = C ¯ X 1 C X 2
Figure 00000014
, бинарные входы управляющих сигналов переключателей сети образуют m-разрядный вход C1,1-Cn/2,k кода управления обратной многоуровневой коммутационной сетью ibaseline, причем бинарный вход C переключателя Ti,j, где i = 1, n / 2 ¯
Figure 00000011
, j = 1, k ¯
Figure 00000015
, соединен с входом разряда Ci,j кода управления обратной многоуровневой коммутационной сетью ibaseline, каждый переключатель сети (k-j+1)-го уровня, где j = 1, k 1 ¯
Figure 00000020
, расположенный на линии с номером i, соединен первым входом X1 с первым выходом Y1 при нечетном i или со вторым выходом Y2 при четном i переключателя (k-j)-го уровня, расположенного на линии с номером u i 1 = I N T ( i + 1 2 ) + 2 j 2 I N T ( i 2 k j ( 2 k 1 + 1 ) )
Figure 00000021
, а вторым входом X2 с первым выходом Y1 при нечетном i или со вторым выходом Y2 при четном i переключателя (k-j)-го уровня сети, расположенного на линии с номером u i 2 = I N T ( i + 1 2 ) + 2 j 2 I N T ( i 2 k j ( 2 k 1 + 1 ) ) + 2 j 2
Figure 00000022
, где INT - функция вычисления целой части от аргумента, первые входы X1 переключателей первого уровня Ti,1, где i = 1, n / 2 ¯
Figure 00000011
, являются входами нечетных разрядов X2i-1 n-разрядного входа сети ibaseline, вторые входы X2 переключателей первого уровня Ti,1, где i = 1, n / 2 ¯
Figure 00000011
, являются входами четных разрядов X2i n-разрядного входа сети ibaseline, первые выходы Y1 переключателей последнего уровня Ti,k где i = 1, n / 2 ¯
Figure 00000011
, являются выходами нечетных разрядов Y2i-1 n-разрядного выхода сети ibaseline, вторые выходы Y2 переключателей последнего уровня Ti,k где i = 1, n / 2 ¯
Figure 00000011
, являются выходами четных разрядов Y2i n-разрядного выхода сети ibaseline. Каждый входной разряд Xi выходного соединителя соединен с выходным разрядом Yj, причем, если i - нечетное число, то j=m, а если i - четное число, то j=m+n/2, где число m определяют путем последовательного вычисления функции ξp(x)=2х-1+ap, где p = 1, k 1 ¯
Figure 00000023
, аргументом функции ξp является значение функции ξp-1, а аргументом функции ξ1 является 1, значение ap определяют из двоичного представления номера i=ak-12k-1+…+a121+a020. Каждый выходной разряд Yi входного соединителя соединен с входным разрядом Xj, причем, если i - нечетное число, то j=m, а если i - четное число, то j=m+n/2, где число m определяют путем последовательного вычисления функции ξp(x)=2х-1+ap, где p = 1, k 1 ¯
Figure 00000023
, аргументом функции ξp является значение функции ξp-1, а аргументом функции ξ1 является 1, значение ap определяют из двоичного представления номера i=ak-12k-1+…+a121+a020.
Изобретение поясняется чертежами, где на фиг.1 приведена блок-схема устройства, на фиг.2 приведена схема устройства для случая n=8, где n - число бит входных данных; на фиг.3 приведена схема многоуровневой коммутационной сети baseline для случая n=8; на фиг.4 приведена возможная схема переключателя многоуровневой коммутационной сети baseline или ibaseline; на фиг.5 приведена схема блока формирования битов маскирования и управления осуществлением циклических и логических сдвигов для случая n=8; на фиг.6 приведена схема модуля Mi,j формирования битов кода управления сдвигом; на фиг.7 приведена схема блока мультиплексоров для случая n=8; на фиг.8 приведена схема блока маскирования с использованием логических элементов «2И» для случая n=8; на фиг.9 приведена схема блока побитовой дизъюнкции с использованием логических элементов «2ИЛИ» для случая n=8. Позициями на чертежах обозначены:
1 - многоуровневая коммутационная сеть baseline или обратная многоуровневая коммутационная сеть ibaseline;
2 - блок формирования битов маскирования и управления;
3 - n-разрядный мультиплексор 2→1 входных данных;
4 - n-разрядный мультиплексор 2→1 выходных данных;
5 - n-разрядный блок маскирования данных на входе;
6 - n-разрядный блок маскирования данных на выходе;
7 - m-разрядный мультиплексор 2→1 битов управления, где m=n/2·log2(n);
8 - n-разрядный входной соединитель;
9 - n-разрядный выходной соединитель;
X1-Xn - n-разрядный вход данных многоуровневой коммутационной сети, n-разрядный вход данных n-разрядного блока маскирования данных на входе, n-разрядный вход данных n-разрядного блока маскирования данных на выходе, n-разрядные входы входного и выходного соединителей;
C1,1-Cn/2,k - m-разрядный вход кода управления сетью, где k=log2(n);
X1,1-X1,n - первый n-разрядный вход мультиплексоров 2→1 входных и выходных данных, первый n-разрядный вход n-разрядного мультиплексора 2→1 битов маскирования;
X2,1-X2,n - второй n-разрядный вход мультиплексоров 2→1 входных и выходных данных, второй n-разрядный вход n-разрядного мультиплексора 2→1 битов маскирования;
Y1-Yn - n-разрядные выходы мультиплексоров 2→1 входных и выходных данных, n-разрядные выходы блоков маскирования данных на входе и выходе, n-разрядный выход данных многоуровневой коммутационной сети, n-разрядные выходы входного и выходного соединителей, n-разрядный выход n-разрядного мультиплексора 2→1 битов маскирования;
C1,1,1-C1,n/2,k - первый m-разрядный вход битов управления, где m=n/2·k, k=log2(n);
С2,1,12,n/2,k - второй m-разрядный вход битов управления, где m=n/2·k, k=log2(n);
Y1,1-Yn/2,k - m-разрядный выход мультиплексора, где m=n/2·k, k=log2(n);
C1-Cn-1 - (n-1)-разрядный выход кода управления сдвигом;
А0-Ak-1 - k-разрядный вход значения числа сдвига данных;
AOR - бинарный вход управления маскированием на выходе и мультиплексором входных данных;
RL - бинарный вход управления направлением сдвига данных;
AMUX - бинарный вход управления мультиплексором битов маскирования;
AIOR - бинарный вход управления маскированием на входе;
AOUT - бинарный вход управления мультиплексором выходных данных;
AC - бинарный вход управления мультиплексором битов управления;
F1-Fn - n-разрядный вход битов маскирования;
FO1-FOn - n-разрядный выход битов маскирования выходных данных;
FI1-FIn - n-разрядный выход битов маскирования входных данных;
Ti,j, где i = 1, n / 2 ¯
Figure 00000024
, i = 1, k ¯
Figure 00000025
, k=log2(n) - переключатели многоуровневой коммутационной сети baseline с первым Х1 и вторым Х2 бинарными входами данных, первым Y1 и вторым Y2 бинарными выходами данных, бинарным входом кода управления C;
23 - первый блок побитовой дизъюнкции;
24 - второй блок побитовой дизъюнкции;
25 - n-разрядны мультиплексор 2→1 битов маскирования;
Di, где i = 1, n ¯
Figure 00000026
- логические инверторы;
Mi,j - модули формирования битов кода управления сдвигом, где i = 1,2 j 1 ¯
Figure 00000027
, j = 1, k ¯
Figure 00000028
;
rotr, ci, f - бинарные входы модуля формирования битов кода управления сдвигом;
c, f1, f2 - бинарные выходы модуля формирования битов кода управления сдвигом;
A - бинарный вход управления мультиплексором 2→1;
211, 212, 213 - логические элементы 2И-НЕ;
214 - логический инвертор;
215, 216 - логические элементы 2ИЛИ;
217 - логический элемент 2ИЛИ-НЕ с инверсией сигнала на первом входе;
218 - логический элемент 2ИЛИ-НЕ;
MX - мультиплексоры 2→1 n-разрядного мультиплексора 2→1.
В дальнейшем изложении n означает число двоичных разрядов данных, k=log2(n) - число уровней преобразования, m=n/2·k - число двоичных разрядов кода управления сетью.
Устройство перестановок и сдвигов битов данных в микропроцессорах, предназначенное для осуществления операций логического и циклического сдвига данных, размещения и выборки группы битов данных, и произвольной перестановки битов данных, включает многоуровневую коммутационную сеть baseline или обратную многоуровневую коммутационную сеть ibaseline 1 с n-разрядным входом X1-Xn данных, n-разрядным выходом Y1-Yn данных, m-разрядным входом C1,1-Cn/2,k кода управления сетью.
Устройство также включает блок формирования битов маскирования и управления 2; n-разрядный мультиплексор 2→1 входных данных 3, n-разрядный мультиплексор 2→1 выходных данных 4, n-разрядный блок маскирования данных на входе 5, n-разрядный блок маскирования данных на выходе 6, m-разрядный мультиплексор 2→1 битов управления 7, n-разрядный входной соединитель 8 и n-разрядный выходной соединитель 9.
Вход данных устройства образован n-разрядным входом данных Х1-Xn n-разрядного блока маскирования данных на входе, на n-разрядный вход битов маскирования F1-Fn которого поступают биты с n-разрядного выхода битов маскирования входных данных FI1-FIn блока формирования битов маскирования и управления.
Блок маскирования данных на входе своим n-разрядным выходом Y1-Yn соединен со вторым n-разрядным входом Х2,12,n n-разрядного мультиплексора 2→1 входных данных и с n-разрядным входом Х1-Xn входного соединителя, который своим n-разрядным выходом Y1-Yn соединен с первым n-разрядным входом X1,1-X1,n n-разрядного мультиплексора 2→1 входных данных, бинарный вход управления которого A соединен с входом AOR устройства.
Мультиплексор 2→1 входных данных своим n-разрядным выходом Y1-Yn соединен с n-разрядным входом данных Х1-Xn многоуровневой коммутационной сети, которая своим n-разрядным выходом Y1-Yn соединена с n-разрядным входом данных n-разрядного блока маскирования данных на выходе.
Многоуровневая коммутационная сеть своим m-разрядным входом C1,1-Cn/2,k кода управления сетью соединена с m-разрядным выходом Y1,1-Yn/2,k m-разрядного мультиплексора 2→1 битов управления, имеющего первый m-разрядный вход C1,1,1-C1,n/2,k, бинарный вход управления AC, а второй m-разрядный вход С2,1,12,n/2,k, соединенный с (n-1)-разрядным выходом C1-Cn-1 кода управления сдвигом. При этом, если используется многоуровневая коммутационная сеть baseline, бит первого разряда С1 кода управления сдвигом подается на входы разрядов C2,1,1-C2,n/2,1 m-разрядного входа мультиплексора 2→1 битов управления, бит второго разряда C2 кода управления сдвигом подается на входы разрядов C2,1,2-C2,n/4,2 m-разрядного входа мультиплексора 2→1 битов управления, бит третьего разряда C3 кода управления сдвигом подается на входы разрядов C2,n/4+1,2-C2,n/2,2 m-разрядного входа мультиплексора 2→1 битов управления и т.д. В общем случае бит i-го разряда Ci, i = 1, n 1 ¯
Figure 00000029
, кода управления сдвигом подается на входы С2,q,r m-разрядного входа мультиплексора 2→1 битов управления, где
INT(i-2r-1)·2k-r<q<(INT((i-2r-1))+1)·2k-r+1, r=INT(log2(i))+1,
INT(x) - функция, выделяющая целую часть аргмента x.
При использовании сети ibaseline вместо сети baseline на входы разрядов C2,q,j, где j = 1, k ¯
Figure 00000030
, q = 1, n / 2 ¯
Figure 00000031
, m-разрядного входа мультиплексора 2→1 битов управления подают бит i-го разряда Ci (n-1)-разрядного выхода C1-Cn-1 кода управления сдвигом, причем i=mod(q-1,2j-1)+2j-1, где mod(q-1,2j-1) - функция, вычисляющая число q-1 по модулю 2j-1.
n-разрядный выход Y1-Yn блока маскирования данных на выходе соединен с входом Х1-Xn n-разрядного выходного соединителя и с первым n-разрядным входом мультиплексора 2→1 выходных данных, выход Y1-Yn n-разрядного выходного соединителя соединен со вторым n-разрядным входом мультиплексора 2→1 выходных данных. Вход управления A n-разрядного мультиплексора 2→1 выходных данных соединен с входом AOUT устройства, а n-разрядный выход Y1-Yn мультиплексора 2→1 выходных данных является выходом данных устройства.
n-разрядный выход FO1-FOn битов маскирования выходных данных блока формирования битов маскирования и управления соединен с n-разрядным входом F1-Fn битов маскирования n-разрядного блока маскирования данных на выходе.
Входы AIOR, RL, AMUX, A0-Ak-1, F1-Fn устройства образованы входами AIOR, RL, AMUX, A0-Ak-1, F1-Fn блока формирования битов маскирования и управления. Вход AOR устройства соединен с входом AOR блока формирования битов маскирования и управления и с входом управления A n-разрядного мультиплексора 2→1 входных данных.
Упомянутая ранее многоуровневая коммутационная сеть baseline имеет n бинарных входов, n бинарных выходов и состоит из переключателей Ti,j, где i = 1, n / 2 ¯
Figure 00000032
, j = 1, k ¯
Figure 00000033
, расположенных в матричном порядке по n/2 линиям и k=log2n уровням, каждый переключатель имеет два бинарных входа Х1, Х2, два бинарных выхода Y1, Y2 и бинарный вход управляющего сигнала, переключатели реализуют логическую функцию Y 1 = C X 1 C ¯ X 2
Figure 00000013
, Y 2 = C ¯ X 1 C X 2
Figure 00000014
, где знак ∨ означает логическую операцию дизъюнкция (логическое ИЛИ), знак ∧ означает логическую операцию конъюнкция (логическое И), а подчеркивание сверху означает операцию логического отрицания.
Бинарные входы управляющих сигналов переключателей сети образуют m-разрядный вход C1,1-Cn/2,k кода управления многоуровневой коммутационной сетью baseline, причем бинарный вход C переключателя Ti,j, где i = 1, n / 2 ¯
Figure 00000032
, j = 1, k ¯
Figure 00000033
, соединен с входом разряда Ci,j кода управления многоуровневой коммутационной сетью baseline.
Каждый переключатель сети baseline j-го уровня, где j = 1, k 1 ¯
Figure 00000034
, расположенный на линии с номером i, соединен одним выходом с входом переключателя j+1 уровня, расположенного на линии с номером u i 1 = I N T ( i + 1 2 ) + 2 k j 1 I N T ( i 2 j 1 ( 2 k 1 + 1 ) )
Figure 00000017
, a другим выходом с входом переключателя j+1 уровня сети baseline, расположенного на линии с номером u i 2 = I N T ( i + 1 2 ) + 2 k j 1 I N T ( i 2 j 1 ( 2 k 1 + 1 ) )
Figure 00000035
, где INT - функция вычисления целой части от аргумента, каждый вход каждого переключателя уровня j+1 соединен с одним выходом переключателя уровня j. Первые входы X1 переключателей первого уровня Ti,1, где i = 1, n / 2 ¯
Figure 00000032
, являются входами нечетных разрядов X2i-1 n-разрядного входа сети baseline, вторые входы X2 переключателей первого уровня Ti,1, где i = 1, n / 2 ¯
Figure 00000032
, являются входами четных разрядов X2i, n-разрядного входа сети baseline, первые выходы Y1 переключателей последнего уровня Ti,k где i = 1, n / 2 ¯
Figure 00000032
, являются выходами нечетных разрядов Y2i-1 n-разрядного выхода сети baseline, вторые выходы Y2 переключателей последнего уровня Ti,k, где i = 1, n / 2 ¯
Figure 00000032
, являются выходами четных разрядов Y2i, n-разрядного выхода сети baseline.
На фиг.3 изображена схема многоуровневой коммутационной сети baseline для случая n=8. Переключатели сети расположены в матричном порядке на четырех линиях и трех уровнях. На фиг.4 изображена возможная схема переключателя Ti,j, где 111, 112 - мультиплексоры 2→1.
В предлагаемом устройстве вместо многоуровневой коммутационной сети baseline может быть использована обратная многоуровневая коммутационная сеть ibaseline. Если в многоуровневой коммутационной сети baseline входы и выходы поменять местами, нумерацию уровней заменить на обратную, а также поменять местами входы и выходы переключателей сети, то получится обратная многоуровневая коммутационная сеть ibaseline.
Обратная многоуровневая коммутационная сеть ibaseline состоит из переключателей Ti,j, где i = 1, n / 2 ¯
Figure 00000032
, j = 1, k ¯
Figure 00000036
расположенных в матричном порядке по n/2 линиям и k=log2n уровням, каждый переключатель имеет два бинарных входа Х1, Х2, два бинарных выхода Y1, Y2 и бинарный вход управляющего сигнала, каждый переключатель реализует логическую функцию Y 1 = C X 1 C ¯ X 2
Figure 00000013
, Y 2 = C ¯ X 1 C X 2
Figure 00000014
, бинарные входы управляющих сигналов переключателей сети образуют m-разрядный вход C1,1-Cn/2,k кода управления обратной многоуровневой коммутационной сетью ibaseline, причем бинарный вход С переключателя Ti,j, где i = 1, n / 2 ¯
Figure 00000032
, j = 1, k ¯
Figure 00000036
, соединен с входом разряда Ci,j кода управления обратной многоуровневой коммутационной сетью ibaseline, каждый переключатель сети (k-j+1)-го уровня, где j = 1, k 1 ¯
Figure 00000037
, расположенный на линии с номером i, соединен одним входом с выходом переключателя (k-j)-го уровня, расположенного на линии с номером u i 1 = I N T ( i + 1 2 ) + 2 j 2 I N T ( i 2 k j ( 2 k 1 + 1 ) )
Figure 00000038
, а другим входом с выходом переключателя (k-j)-го уровня сети, расположенного на линии с номером u i 2 = I N T ( i + 1 2 ) + 2 j 2 I N T ( i 2 k j ( 2 k 1 + 1 ) ) + 2 j 2
Figure 00000039
, где INT - функция вычисления целой части от аргумента, каждый выход каждого переключателя (k-j)-го уровня соединен с одним входом переключателя (k-j+1)-го уровня, первые входы X1 переключателей первого уровня Ti,1, где i = 1, n / 2 ¯
Figure 00000032
, являются входами нечетных разрядов X2i-1 n-разрядного входа сети ibaseline, вторые входы X2 переключателей первого уровня Ti,1, где i = 1, n / 2 ¯
Figure 00000032
, являются входами четных разрядов X2i n-разрядного входа сети ibaseline, первые выходы Y1 переключателей последнего уровня Ti,k, где i = 1, n / 2 ¯
Figure 00000032
, являются выходами нечетных разрядов Y2i-1 n-разрядного выхода сети ibaseline, вторые выходы Y2 переключателей последнего уровня Ti,k, где i = 1, n / 2 ¯
Figure 00000032
, являются выходами четных разрядов Y2i, n-разрядного выхода сети ibaseline.
Блок формирования битов маскирования и управления (см. фиг.5) характеризуется наличием бинарных входов управления AOR, RL, AMUX, AIOR, k-разрядного входа А0-Ak-1 значения числа сдвига данных, n-разрядного входа битов маскирования данных F1-Fn, образующих соответстующие входы предлагаемого устройства. Блок формирования битов маскирования и управления характеризуется также наличием n-разрядного выхода FI1-FIn битов маскирования входных данных, n-разрядного выхода FOI-FOn битов маскирования выходных данных, (n-1)-разрядного выхода С1-Cn-1 кода управления сдвигом, образующих соответстующие выходы предлагаемого устройства.
Блок формирования битов маскирования и управления включает идентичные первый 23 и второй 24 блоки побитовой дизъюнкции (см. фиг.9), каждый из которых характеризуется наличием n-разрядного входа данных, n-разрядного выхода данных, входа управления AOR для блока 23 или AIOR для блока 24. Блок побитовой дизъюнкции 23 осуществляет логические функции побитовое логическое ИЛИ, т.е. Yi=Xi∨AOR, где i = 1, n ¯
Figure 00000040
. Блок побитовой дизъюнкции 24 осуществляет логические функции побитовое логическое ИЛИ, т.е. FIi=Xi∨AIOR, где i = 1, n ¯
Figure 00000040
.
Блок формирования битов маскирования и управления также включает мультиплексор битов маскирования 25, имеющий первый n-разрядный вход X1,1-X1,n, второй n-разрядный вход Х2,12,n, n-разрядный выход FO1-FOn битов маскирования выходных данных и бинарный вход управления AMUX.
Блок формирования битов маскирования и управления также включает n/2 логических инверторов и n-1 модуль Mi,j, где i = 1,2 j 1 ¯
Figure 00000041
, j = 1, k ¯
Figure 00000042
, формирования битов кода управления сдвигом, каждый из которых имеет три бинарных входа f, ci, rotr и три бинарных выхода с, f1, f2, и выполняет три логических функции c = f c i f c i ¯
Figure 00000043
, f 1 = ( r o t r ¯ f c i ¯ ) ( f c i ¯ ) ¯
Figure 00000008
, f 2 = ( r o t r f c i ¯ ) ( f c i ¯ ) ¯
Figure 00000009
. На языке Verilog эти логические функции описываются следующим образом:
c=f&ci|~(f|ci);
f1=~((~rotr|~(f|ci))&~(f&ci));
f2=~((rotr|~(f|ci))&~(f&ci));
На фиг.6 приведена возможная схема модуля формирования битов кода управления сдвигом Mi,j, где i = 1,2 j 1 ¯
Figure 00000041
, j = 1, k ¯
Figure 00000042
.
Модули формирования битов кода управления соединены так, что образуют двоичное дерево (пирамидальную структуру) с k уровнями. При этом на первом уровне двоичного дерева содержится один модуль M1,1, выход с которого соединен с выходом С1 блока формирования битов маскирования и управления. На втором уровне двоичного дерева содержится два модуля: М1,2, выход с которого соединен с выходом C2 блока формирования битов маскирования и управления, и M2,2, выход с которого соединен с выходом C3 блока формирования битов маскирования и управления. На третьем уровне двоичного дерева содержится четыре модуля M1,3, M2,3, M3,3, M4,3, выходы с которых соответственно соединены с выходами С4, С5, C6, C7, блока формирования битов маскирования и управления. В общем случае на уровне j, где j = 1, k ¯
Figure 00000042
, содержится 2j-1 модулей Mi,j, где i = 1,2 j 1 ¯
Figure 00000041
, причем выход с каждого из модулей Mi,j соединен с выходом Cp блока формирования битов маскирования и управления, где р=2j-1+i-1.
Выход f1 каждого модуля Mi,j, где i = 1,2 j 1 ¯
Figure 00000041
, формирования битов кода управления, расположенного на уровне j, где j = 1, k ¯
Figure 00000042
, соединен с входом f модуля M2i-1,j+1, расположенного на уровне j+1. Выход f2 каждого модуля Mi,j, где i = 1,2 j 1 ¯
Figure 00000041
, формирования битов кода управления сдвигом, расположенного на уровне j, где j = 1, k ¯
Figure 00000042
, соединен с входом f модуля M2i,j+1, расположенного на уровне j+1. На вход f модуля М1,1 формирования битов кода управления подается сигнал с низким логическим уровнем. Вход ci каждого модуля Mi,j формирования битов кода управления сдвигом, расположенного на уровне j, где i = 1,2 j 1 ¯
Figure 00000041
, соединен с входом разряда Aj-1 k-разрядного входа A0-Ak-1 значения числа сдвига данных, расположенного в блоке формирования битов маскирования и управления.
Вход rotr каждого модуля Mi,j соединен с бинарным входом управления направлением сдвига данных RL.
Выход f1 каждого модуля Mi,k, расположенного на последнем k-м уровне, где i = 1, n / 2 ¯
Figure 00000032
, соединен с входом логического инвертора D2i-1. Выход f2 каждого модуля Mi,k расположенного на последнем k-м уровне, где i = 1, n / 2 ¯
Figure 00000032
, соединен с входом логического инвертора D2i. Каждый выход логического инвертора Di, где i = 1, n ¯
Figure 00000044
, соединен с разрядом X1,i, где i = 1, n ¯
Figure 00000044
, первого n-разрядного входа мультиплексора битов маскирования 25, n-разрядный выход которого Y1-Yn соединен с n-разрядным выходом FO1-FOn блока формирования битов маскирования и управления.
В блоке формирования битов маскирования и управления n-разрядный вход F1-Fn битов маскирования соединен с n-разрядным входом Х1-Xn первого блока побитовой дизъюнкции 23 и с n-разрядным входом Х1-Xn второго блока побитовой дизъюнкции 24. n-разрядный выход Y1-Yn первого блока побитовой дизъюнкции 23 соединен со вторым n-разрядным входом Х2,12,n мультиплексора битов маскирования 25. Бинарный вход AOR первого блока побитовой дизъюнкции 23 является входом AOR устройства. Бинарный вход AIOR второго блока побитовой дизъюнкции 24 является входом AIOR устройства. n-разрядный выход FI1-FIn 23 является выходом блока формирования битов маскирования и управления.
Вход AMUX мультиплексора битов маскирования 25 является входом предлагаемого устройства.
Под соединением входа и выхода или выхода и входа понимается условие, при котором если подать сигнал на вход, соединенный с выходом, или выход, соединенный с входом, на выходе через некоторую временную задержку, обусловленную временем распространения сигнала, появится входной сигнал и, наоборот, если подать сигнал на выход, на входе через некоторую временную задержку, обусловленную временем распространения сигнала, появится выходной сигнал. В частности, соединение может быть электрическим соединением.
Упомянутые ранее n-разрядные мультиплексоры 2→1 входных данных и n-разрядный мультиплексор 2→1 выходных данных представляют собой одинаковые модули, каждый из которых имеет первый n-разрядный вход данных, второй n-разрядный вход данных, n-разрядный выход данных и бинарный вход управления. Если на вход поступает сигнал с низким логическим уровнем, на n-разрядный выход мультиплексора поступают сигналы с первого n-разрядного входа данных. Если на вход поступает сигнал с высоким логическим уровнем, на n-разрядный выход мультиплексора поступают сигналы со второго n-разрядного входа данных.
Упомянутый ранее m-разрядный мультиплексор 2→1 аналогичен описанному выше n-разрядному мультиплексору 2→1, но имеет m-разрядные входы данных C1,1,1-C1,n/2,k, С2,1,12,n/2k и m-разрядный выход данных Y1,1-Yn/2,k.
Описание и способ построения n-разрядных мультиплексоров 2→1 известен в технике, их можно найти, например, в справочнике: Пухальский Г.И., Новосельцева Т.Я. Проектирование дискретных устройств на интегральных микросхемах: Справочник. М.: Радио и связь, 1990. 304 с.
Выходной соединитель имеет n-разрядный вход Х1-Xn данных, n-разрядный выход Y1-Yn данных, где каждый входной разряд Xi с номером i, i = 1, n ¯
Figure 00000044
, соединен с выходным разрядом Yj с номером j, причем, если i - нечетное число, то j=m, если i - четное число, то j=m+n/2, где m=ξk-1(…ξ21(1)))…), ξр(х)=2х-1+ар значение ар, где p = 1, k 1 ¯
Figure 00000045
, определяется двоичным представлением i: i=ak-12k-1+…+a121+a020. Таким образом, число m определяется путем последовательного вычисления функции ξр, где p = 1, k 1 ¯
Figure 00000045
, аргументом функции ξp является значение функции ξp-1, а аргументом функции является 1.
Входной соединитель имеет n-разрядный вход Х1-Xn данных, n-разрядный выход Y1-Yn данных, где каждый выходной разряд Yi с номером i, i = 1, n ¯
Figure 00000044
соединен с входным разрядом Xj с номером j, причем, если i - нечетное число, то j=m, если i - четное число, то j=m+n/2, где m=ξk-1(…ξ21(1)))…), ξp(x)=2x-1+ap значение ар, где p = 1, k 1 ¯
Figure 00000045
, определяется двоичным представлением номера i: i=ak-12k-1+…+a121+a020. Таким образом, число m определяется путем последовательного вычисления функции ξр, где p = 1, k 1 ¯
Figure 00000045
, аргументом функции ξр является значение функции ξp-1, а аргументом функции ξ1 является 1.
Обозначения блоков, приведенные на фиг.2, совпадают с обозначениями на фиг.1. Входной и выходной соединители не показаны на фиг.2 в виде блоков, а реализованы описанным выше способом соединения выхода блока маскирования данных на входе с первым входом мультиплексора входных данных, а также описанным выше способом соединения выхода Y1-Yn блока маскирования данных на выходе со вторым входом Х2,12,n мультиплексора выходных данных.
Устройство работает следующим образом.
Режим работы устройства задается подачей на бинарные входы управления AOR, RL, AMUX, AIOR, AOUT, AC управляющих сигналов в соответствии с табл.1
Табл.1
Сигналы управления устройством перестановок и сдвигов битов данных
Инструкции RL AOUT AC AMUX AOR AIOR
shr r1=r2,r3 0 1 1 0 1 -
shl r1=r2,r3 1 1 1 0 1 -
rotr r1=r2,r3 0 1 1 1 1 1
rotl r1=r2,r3 1 1 1 1 1 1
рех r1=r2, ar.b1, ar.b2, ar.b3 - 1 0 1 1 0
pdep r1=r2, ar.b1, ar.b2, ar.b3 - 0 0 1 0 1
bsn r1=r2, ar.b1, ar.b2, ar.b3 или ibsn r1=r2, ar.b1, ar.b2, ar.b3 - 0 0 1 1 1
Краткое описание инструкций из табл.1 приведено в табл.2. Подробное описание инструкций из табл.1 можно найти, например, в статье «Методы синтеза устройств, выполняющих инструкции перестановки битов данных». / Сотов Л.С. // Гетеромагнитная микроэлектроника. 2011. Вып.10. С.25-50.
Табл.2
Инструкции манипуляции битами данных
Инструкция Описание
bsn r1=r2, ar.b1, ar.b2, ar.b3 или ibsn r1=r2, ar.b1, ar.b2, ar.b3 Осуществление инструкции перестановки битов данных с использованием многоуровневой коммутационной сети baseline или ibaseline в соответствии с управляющими кодами в регистрах ar.b1, ar.b2, ar.b3 микропроцессора и запись результата в регистр r1 микропроцессора.
рех r1=r2, r3, ar.b1, ar.b2, ar.b3 Статическая инструкция извлечения группы битов из регистра r2 и размещение их в начале регистра r1 в соответствии с управляющими кодами в регистрах ar.b1, ar.b2, ar.b3 микропроцессора и запись результата в регистр r1 микропроцессора и запись результата в регистр r1 микропроцессора.
pder r1=r2, r3, ar.b1, ar.b2, ar.b3 Статическая инструкция размещения группы битов регистра r2 в регистре r1 в соответствии с управляющими кодами в регистрах ar.b1, ar.b2, ar.b3 микропроцессора и запись результата в регистр r1 микропроцессора.
shr r1=r2, r3 Логический сдвиг данных в регистре r2 микропроцессора вправо на число бит, содержащееся в регистре r3 микропроцессора и запись результата в регистр r1 микропроцессора.
shl r1=r2, r3 Логический сдвиг данных в регистре r2 микропроцессора вправо на число бит, содержащееся в регистре r3 микропроцессора и запись результата в регистр r1 микропроцессора.
rotr r1=r2, r3 Циклический сдвиг данных в регистре r2 микропроцессора вправо на число бит, содержащееся в регистре r3 микропроцессора и запись результата в регистр r1 микропроцессора.
rotl r1=r2, r3 Циклический сдвиг данных в регистре r2 микропроцессора вправо на число бит, содержащееся в регистре r3 микропроцессора и запись результата в регистр r1 микропроцессора.
На вход Х1-Xn n-разрядного блока маскирования данных на входе подаются входные данные, например, из регистра r2 микропроцессора. При реализации инструкций рех или pdep на n-разрядный вход битов маскирования F1-Fn блока формирования битов маскирования и управления подаются биты маскирования, например, из регистра r3 микропроцессора. Для реализации инструкций bsn, рех или pdep на первый m-разрядный вход C1,1,1-C1,n/2,k битов управления мультиплексора битов управления подаются коды управления, например, из регистров ar.b1, ar.b1, ar.b2, ar.b3 микропроцессора. Для осуществления инструкций shr, shl, rotr, rotl, логического и циклического сдвигов на k-разрядный вход A0-Ak-1 подается значение числа сдвига данных. Значение числа сдвига данных может содержаться, например, в младших битах регистра r2 микропроцессора, так как при выполнении инструкций shr, shl биты маскирования формируются блоком формирования битов маскирования и управления, а при выполнении инструкций rotr, rotl биты маскирования не используются.
После выполнения одной из инструкций bsn, рех, pdep, shr, shl, rotr или rotl результат формируется на n-разрядном выходе Y1-Yn мультиплексора выходных данных и записывается, например, в регистр r1 микропроцессора.
Рассмотрим отдельно пути прохождения данных в схемах модуля манипуляции битами, представленных на фиг.1, фиг.2, при реализации инструкций bsn, рех, pdep, shr, shl, rotr или rotl.
При выполнении инструкции bsn на n-разрядный вход Х1-Xn блока маскирования данных на входе поступают данные, которые без изменения проходят через этот блок, поступают на второй вход мультиплексора входных данных и с его выхода Y1-Yn на вход многоуровневой коммутационной сети. Одновременно через первый вход и затем выход n-разрядного мультиплексора биты управления переключателями сети поступают на вход C1,1-Cn/2,k управления переключателями коммутационной сети. С выхода Y1-Yn сети перестановленные биты данных без изменения проходят через блок маскирования данных на выходе и поступают на выход модуля манипуляции битами через первый вход, а затем выход мультиплексора выходных данных.
При выполнении инструкции pex биты данных поступают на n-разрядный вход Х1-Xn блока маскирования данных на входе, на второй вход F1-Fn которого подаются биты маскирования с выхода FI1-FIn блока формирования битов маскирования и управления. Маскированные данные через второй вход, а затем выход мультиплексора входных данных поступают на вход многоуровневой коммутационной сети. Одновременно через первый вход и затем выход m-разрядного мультиплексора биты управления переключателями сети поступают на вход C1,1-Cn/2,k управления переключателями коммутационной сети. С выхода сети данные, проходя без изменения через блок маскирования данных на выходе, подаются на вход выходного соединителя и, проходя через него, поступают на второй вход мультиплексора выходных данных и далее попадают на его выход.
При выполнении инструкции pdep данные поступают на n-разрядный вход Х1-Xn блока маскирования данных на входе, проходят его без изменений и через входной соединитель поступают на первый вход мультиплексора входных данных и с выхода этого мультиплексора поступают на вход многоуровневой коммутационной сети. Одновременно через первый вход и затем выход m-разрядного мультиплексора биты управления переключателями сети поступают на вход C1,1-Cn/2,k управления переключателями коммутационной сети. Далее данные поступают на вход блока маскирования данных на выходе, на второй вход которого поступают биты маскирования с выхода FO1-FOn блока формирования битов маскирования и управления. Маскированные на выходе данные через выходной соединитель поступают на второй вход и затем на выход мультиплексора выходных данных, формируя, таким образом, выходные данные предлагаемого устройства.
При выполнении инструкций shr, shl, rotr, rotl биты данных поступают на n-разрядный вход Х1-Xn блока маскирования данных на входе и проходят его без изменений. С выхода блока маскирования данных на входе данные через второй вход, а затем выход мультиплексора входных данных поступают на вход многоуровневой коммутационной сети. Управление осуществляется путем подачи на вход C1,1-Cn/2,k сети кодов управления с выхода C1-Cn-1 блока формирования битов маскирования и управления через второй вход и затем выход мультиплексора битов управления. С выхода сети данные поступают на вход блока маскирования данных на выходе.
При выполнении инструкций rotr, rotl на второй вход F1-Fn блока маскирования данных на выходе подаются сигналы с высоким логическим уровнем и данные без изменений подаются на вход выходного соединителя, проходя через который, поступают на второй вход мультиплексора выходных данных и далее попадают на его выход.
При выполнении инструкций shr, shl на второй вход F1-Fn блока маскирования данных на выходе подаются сигналы маскирования и маскированные данные подаются на вход выходного соединителя, проходя через который, поступают на второй вход мультиплексора выходных данных и далее попадают на его выход.
Таким образом, при одинаковой функциональности с существующими решениями предлагаемое устройство имеет более простую конструкцию за счет использования только одной многоуровневой коммутационной сети с топологией baseline или ibaseline для выполнения произвольных перестановок, циклических и логических сдвигов данных, операций извлечения и размещения в заданных позициях групп битов данных. Предложенное решение имеет расширенную функциональность по сравнению с используемыми устройствами логического и циклического сдвига и позволяет вычислять циклические и логические сдвиги данных, операции извлечения и размещения в заданных позициях групп битов данных за один цикл микропроцессора. Произвольные перестановки осуществляются за два цикла процессора с последовательным использованием двух команд bsn. При этом сохраняется высокое быстродействие устройства, что существенно повышает производительность микропроцессоров при решении задач обработки изображений, распознавания образов, кодирования, стеганографии, криптографии, обработки сигналов и т.п.

Claims (8)

1. Устройство перестановок и сдвигов битов данных в микропроцессорах, характеризующееся тем, что включает многоуровневую коммутационную сеть baseline или обратную многоуровневую коммутационную сеть ibaseline, с n-разрядным входом данных X1-Xn, n-разрядным выходом данных Y1-Yn, m-разрядным входом C1,1-Cn/2,k кода управления сетью; устройство также включает n-разрядный мультиплексор 2→1 входных данных с первым n-разрядным входом X1,1-X1,n, вторым n-разрядным входом X2,1-X2,n, входом управления A, соединенным с бинарным входом AOR управления маскированием на выходе и мультиплексором входных данных устройства, n-разрядным выходом Y1-Yn, соединенным с n-разрядным входом данных X1-Xn многоуровневой коммутационной сети; устройство также включает n-разрядный входной соединитель с n-разрядным входом X1-Xn и n-разрядным выходом Y1-Yn, соединенным с первым n-разрядным входом X1,1-X1,n n-разрядного мультиплексора 2→1 входных данных, входной соединитель обеспечивает фиксированные соединения входных и выходных разрядов; устройство также включает n-разрядный блок маскирования данных на входе с первым n-разрядным входом данных X1-Xn, вторым n-разрядным входом F1-Fn, n-разрядным выходом Y1-Yn, соединенным с n-разрядным входом X1-Xn входного соединителя и со вторым n-разрядным входом Х2,12,n, n-разрядного мультиплексора 2→1 входных данных; устройство также включает m-разрядный мультиплексор 2→1 битов управления с входом управления AC, первым m-разрядным входом C1,1,1-C1,n/2,k битов управления, вторым m-разрядным входом C2,1,1-C2,n/2,k битов управления, m-разрядным выходом Y1,1-Yn/2,k, соединенным с m-разрядным входом C1,1-Cn/2,k кода управления сетью; устройство также включает блок формирования битов маскирования и управления, с бинарным входом AOR, соединенным с бинарным входом управления маскированием на выходе и мультиплексором входных данных устройства, бинарным входом RL управления направлением сдвига данных, бинарным входом AMUX управления мультиплексором битов маскирования, бинарным входом AIOR управления маскированием на входе, n-разрядным входом F1-Fn битов маскирования, k-разрядным входом A0-Ak-1 значения числа сдвига данных, n-разрядным выходом FI1-FIn битов маскирования входных данных, соединенным со вторым n-разрядным входом F1-Fn блока маскирования данных на входе, n-разрядным выходом FO1-FOn битов маскирования выходных данных, (n-1)-разрядным выходом C1-Cn-1 кода маскирования данных на входе, (n-1)-разрядным выходом C1-Cn-1 кода управления сдвигом, соединенным с вторым m разрядным входом C2,1,1-C2,n/2,k битов управления мультиплексора 2→1 битов управления; устройство также включает n-разрядный блок маскирования данных на выходе с первым n-разрядным входом X1-Xn, соединенным с n-разрядным выходом данных Y1-Yn многоуровневой коммутационной сети, вторым n-разрядным входом F1-Fn, соединенным с n-разрядным выходом битов маскирования выходных данных FO1-FOn, n-разрядным выходом Y1-Yn; устройство также включает n-разрядный выходной соединитель с n-разрядным выходом Y1-Yn, n-разрядным входом X1-Xn, соединенным с n-разрядным выходом Y1-Yn n-разрядного блока маскирования данных на выходе, выходной соединитель обеспечивает фиксированные соединения входных и выходных разрядов; устройство также включает n-разрядный мультиплексор 2→1 выходных данных с первым n-разрядным входом X1,1-X1,n, соединенным с n-разрядным выходом Y1-Yn n-разрядного блока маскирования данных на выходе, вторым n-разрядным входом Х2,12,n, соединенным с n-разрядным выходом Y1-Yn n-разрядного выходного соединителя, входом управления А, соединенным с бинарным входом управления мультиплексором выходных данных AOUT устройства, n-разрядным выходом данных Y1-Yn.
2. Устройство по п.1, характеризующееся тем, что при использовании сети baseline бит i-го разряда Ci, i = 1, n 1 ¯
Figure 00000046
кода управления сдвигом подают на входы разрядов C2,q,r второго m-разрядного входа мультиплексора битов управления, где индекс q - целое число и INT(i-2r-1)·2k-r<q<(INT((i-2r-l))+1)·2k-r+1, r=INT(log2(i))+1, INT - функция, выделяющая целую часть аргумента.
3. Устройство по п.1, характеризующееся тем, что при использовании сети ibaseline на входы разрядов C2,q,j, где j = 1, k ¯ ,
Figure 00000047
q = 1, n / 2 ¯ ,
Figure 00000048
второго m-разрядного входа мультиплексора битов управления подают бит i-го разряда Ci (n-1)-разрядного выхода C1-Cn-1 кода управления сдвигом, причем i=mod(q-1,2j-1)+2j-1, где mod(q-1,2j-1) - функция, вычисляющая число q-1 по модулю 2j-1.
4. Устройство по п.1, характеризующееся тем, что блок формирования битов маскирования и управления включает первый блок побитовой дизъюнкции с n-разрядным входом данных Х1-Xn, соединенным с n-разрядным входом F1-Fn битов маскирования, n-разрядным выходом данных Y1-Yn, и входом AOR, первый блок побитовой дизъюнкции осуществляет функции побитовое логическое ИЛИ Yi=Xi∨AOR, где i = 1, n ¯
Figure 00000049
; блок формирования битов маскирования и управления также включает n-разрядный мультиплексор битов маскирования, с выходом FO1-FOn, первым n-разрядным входом X1,1-X1,n, вторым n-разрядным входом Х2,12,n, соединенным выходом Y1-Yn первого блока побитовой дизъюнкции, входом AMUX, блок формирования битов маскирования и управления также включает n логических инверторов D1-Dn и n-1 модуль формирования битов кода управления сдвигом Mi,j, где i = 1,2 j 1 ¯
Figure 00000050
, j = 1, k ¯
Figure 00000051
, каждый из которых имеет три бинарных входа f, ci, rotr, три бинарных выхода с, f1, f2, и выполняет логические функции: c = f c i f c i ¯
Figure 00000052
, f 1 = ( r o t r ¯ f c i ¯ ) ( f c i ¯ ) ¯
Figure 00000053
, f 2 = ( r o t r f c i ¯ ) ( f c i ¯ ) ¯
Figure 00000054
, входы rotr всех модулей Mi,j соединены с входом RL, модули Mi,j соединены так, что образуют двоичное дерево с k уровнями, при этом на уровне j содержится 2j-1 модулей Mi,j, причем выход с каждого из модулей Mi,j соединен с выходом Ср блока формирования битов маскирования и управления, где p=2j-1+i-1, выход f1 каждого модуля Mi,j, расположенного на уровне j, соединен с входом f модуля M2i-1,j+1, расположенного на уровне j+1, выход f2 каждого модуля Mi,j, расположенного на уровне j, соединен с входом f модуля M2i,j+1, расположенного на уровне j+1, вход f модуля М1,1 предназначен для сигнала с низким логическим уровнем, вход ci каждого модуля Mi,j, расположенного па уровне j, соединен с входом разряда Aj-1 входа A0-Ak-1, выход f1 каждого модуля Mi,k, расположенного на k-м уровне, соединен с входом логического инвертора D2i-1, выход f2 каждого модуля Mi,k, расположенного на k-м уровне, где i = 1, n / 2 ¯
Figure 00000055
, соединен с входом логического инвертора D2i, каждый выход логического инвертора Di, где i = 1, n ¯
Figure 00000049
, соединен с разрядом Х1,i первого входа мультиплексора битов маскирования; блок формирования битов маскирования и управления включает второй блок побитовой дизъюнкции с n-разрядным входом данных Х1-Xn, соединенным с n-разрядным входом F1-Fn битов маскирования, выходом FI1-FIn, входом AIOR, второй блок побитовой дизъюнкции осуществляет функции побитовое логическое ИЛИ Yi=Xi∨AIOR, где i = 1, n ¯
Figure 00000049
.
5. Устройство по п.1, характеризующееся тем, что многоуровневая коммутационная сеть baseline состоит из переключателей Ti,j, где i = 1, n / 2 ¯
Figure 00000056
, j = 1, k ¯
Figure 00000057
, расположенных в матричном порядке по n/2 линиям и k=log2n уровням, каждый переключатель имеет два бинарных входа Х1, Х2, два бинарных выхода Y1, Y2 и бинарный вход управляющего сигнала С, каждый переключатель реализует логические функции Y 1 = C X 1 C ¯ X 2 ,
Figure 00000058
Y 2 = C ¯ X 1 C X 2 ,
Figure 00000059
бинарные входы управляющих сигналов переключателей сети образуют m-разрядный вход C1,1-Cn/2,k кода управления многоуровневой коммутационной сетью baseline, причем бинарный вход С переключателя Ti,j, где i = 1, n / 2 ¯ ,
Figure 00000060
j = 1, k ¯ ,
Figure 00000061
соединен с входом разряда Ci,j, кода управления многоуровневой коммутационной сетью baseline, каждый переключатель сети j-го уровня, где j = 1, k 1 ¯
Figure 00000062
, расположенный на линии с номером i, соединен первым выходом Y1 с первым входом X1 при нечетном i или со вторым входом Х2 при четном i переключателя j+1 уровня, расположенного на линии с номером u i 1 = I N T ( i + 1 2 ) + 2 k j 1 I N T ( i 2 j 1 ( 2 k 1 + 1 ) ) ,
Figure 00000063

а вторым выходом Y2 с первым входом X1 при нечетном i или со вторым входом Х2 при четном i переключателя j+1 уровня сети, расположенного на линии с номером u i 2 = I N T ( i + 1 2 ) + 2 k j 1 I N T ( i 2 j 1 ( 2 k 1 + 1 ) ) + 2 k j 1 ,
Figure 00000064

где INT - функция вычисления целой части от аргумента; первые входы X1 переключателей первого уровня Ti,1, где i = 1, n / 2 ¯
Figure 00000056
, являются входами нечетных разрядов X2i-1 n-разрядного входа сети baseline, вторые входы Х2 переключателей первого уровня Ti,1, где i = 1, n / 2 ¯
Figure 00000056
, являются входами четных разрядов X2i, n-разрядного входа сети baseline, первые выходы Y1 переключателей последнего уровня Ti,k, где i = 1, n / 2 ¯
Figure 00000056
, являются выходами нечетных разрядов Y2i-1 n-разрядного выхода сети baseline, вторые выходы Y2 переключателей последнего уровня Ti,k, где i = 1, n / 2 ¯
Figure 00000056
, являются выходами четных разрядов Y2i n-разрядного выхода сети baseline.
6. Устройство по п.1, характеризующееся тем, что обратная многоуровневая коммутационная сеть ibaseline состоит из переключателей Ti,j, где i = 1, n / 2 ¯
Figure 00000056
, j = 1, k ¯
Figure 00000065
, расположенных в матричном порядке по n/2 линиям и k=log2n уровням, каждый переключатель имеет два бинарных входа X1, Х2, два бинарных выхода Y1, Y2 и бинарный вход управляющего сигнала С, каждый переключатель реализует логические функции Y 1 = C X 1 C ¯ X 2
Figure 00000066
, Y 2 = C ¯ X 1 C X 2
Figure 00000067
, бинарные входы управляющих сигналов переключателей сети образуют m-разрядный вход C1,1-Cn/2,k кода управления обратной многоуровневой коммутационной сетью ibaseline, причем бинарный вход С переключателя Ti,j, где i = 1, n / 2 ¯
Figure 00000056
, j = 1, k ¯
Figure 00000065
, соединен с входом разряда Ci,j кода управления обратной многоуровневой коммутационной сетью ibaseline, каждый переключатель сети (k-j+1)-го уровня, где j = 1, k 1 ¯
Figure 00000068
, расположенный на линии с номером i, соединен первым входом X1 с первым выходом Y1 при нечетном i или со вторым выходом Y2 при четном i переключателя (k-j)-го уровня, расположенного на линии с номером u i 1 = I N T ( i + 1 2 ) + 2 j 2 I N T ( i 2 k j ( 2 k 1 + 1 ) ) ,
Figure 00000069

а вторым входом X2 с первым выходом Y1 при нечетном i или со вторым выходом Y2 при четном i переключателя (k-j)-го уровня сети, расположенного на линии с номером u i 2 = I N T ( i + 1 2 ) + 2 j 2 I N T ( i 2 k j ( 2 k 1 + 1 ) ) + 2 j 2 ,
Figure 00000070

где INT - функция вычисления целой части от аргумента, первые входы X1 переключателей первого уровня Ti,1, где i = 1, n / 2 ¯
Figure 00000056
, являются входами нечетных разрядов X2i-1 n-разрядного входа сети ibaseline, вторые входы Х2 переключателей первого уровня Ti,1, где i = 1, n / 2 ¯
Figure 00000056
, являются входами четных разрядов X2i n-разрядного входа сети ibaseline, первые выходы Y1 переключателей последнего уровня Ti,k, где i = 1, n / 2 ¯
Figure 00000056
, являются выходами нечетных разрядов Y2i-1 n-разрядпого выхода сети ibaseline, вторые выходы Y2 переключателей последнего уровня Ti,k, где i = 1, n / 2 ¯
Figure 00000056
, являются выходами четных разрядов Y2i n-разрядного выхода сети ibaseline.
7. Устройство по п.1, характеризующееся тем, что каждый входной разряд Xi выходного соединителя соединен с выходным разрядом Yj, причем, если i - нечетное число, то j=m, а если i - четное число, то j=m+n/2, где число m определяют путем последовательного вычисления функции ξр(х)=2х-1+ар, где p = 1, k 1 ¯
Figure 00000071
, аргументом функции ξp является значение функции ξp-1, a аргументом функции ξ1 является 1, значение ap определяют из двоичного представления номера i=ak-12k-1+…+а121020.
8. Устройство по п.1, характеризующееся тем, что каждый выходной разряд Yi входного соединителя соединен с входным разрядом Xj, причем, если i - нечетное число, то j=m, а если i - четное число, то j=m+n/2, где число m определяют путем последовательного вычисления функции ξp(x)=2x-1+ap, где p = 1, k 1 ¯
Figure 00000071
, аргументом функции ξр является значение функции ξр-1, а аргументом функции ξ1 является 1, значение ap определяют из двоичного представления номера i=ak-12k-1+…+а121020.
RU2011145864/08A 2011-11-14 2011-11-14 Устройство перестановок и сдвигов битов данных в микропроцессорах RU2488161C1 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2011145864/08A RU2488161C1 (ru) 2011-11-14 2011-11-14 Устройство перестановок и сдвигов битов данных в микропроцессорах

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2011145864/08A RU2488161C1 (ru) 2011-11-14 2011-11-14 Устройство перестановок и сдвигов битов данных в микропроцессорах

Publications (2)

Publication Number Publication Date
RU2011145864A RU2011145864A (ru) 2013-05-20
RU2488161C1 true RU2488161C1 (ru) 2013-07-20

Family

ID=48788874

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2011145864/08A RU2488161C1 (ru) 2011-11-14 2011-11-14 Устройство перестановок и сдвигов битов данных в микропроцессорах

Country Status (1)

Country Link
RU (1) RU2488161C1 (ru)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2613533C1 (ru) * 2016-02-08 2017-03-16 Федеральное государственное автономное образовательное учреждение высшего профессионального образования "Национальный исследовательский ядерный университет "МИФИ" (НИЯУ МИФИ) Устройство сдвига
RU2780985C1 (ru) * 2021-12-01 2022-10-04 федеральное государственное автономное образовательное учреждение высшего образования "Национальный исследовательский ядерный университет МИФИ" (НИЯУ МИФИ) Устройство для детектирования групп бит

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2157000C2 (ru) * 1995-06-15 2000-09-27 Интел Корпорейшн Архитектура процессора ввода-вывода, который объединяет мост межсоединения первичных компонент
US6922472B2 (en) * 2000-05-05 2005-07-26 Teleputers, Llc Method and system for performing permutations using permutation instructions based on butterfly networks
US6952478B2 (en) * 2000-05-05 2005-10-04 Teleputers, Llc Method and system for performing permutations using permutation instructions based on modified omega and flip stages
RU2427885C1 (ru) * 2010-01-25 2011-08-27 Государственное образовательное учреждение высшего профессионального образования "Саратовский государственный университет им. Н.Г. Чернышевского" Быстродействующий генератор случайных перестановок и сочетаний
US20110213869A1 (en) * 2000-09-25 2011-09-01 Yevgeny Korsunsky Processing data flows with a data flow processor

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2157000C2 (ru) * 1995-06-15 2000-09-27 Интел Корпорейшн Архитектура процессора ввода-вывода, который объединяет мост межсоединения первичных компонент
US6922472B2 (en) * 2000-05-05 2005-07-26 Teleputers, Llc Method and system for performing permutations using permutation instructions based on butterfly networks
US6952478B2 (en) * 2000-05-05 2005-10-04 Teleputers, Llc Method and system for performing permutations using permutation instructions based on modified omega and flip stages
US20110213869A1 (en) * 2000-09-25 2011-09-01 Yevgeny Korsunsky Processing data flows with a data flow processor
RU2427885C1 (ru) * 2010-01-25 2011-08-27 Государственное образовательное учреждение высшего профессионального образования "Саратовский государственный университет им. Н.Г. Чернышевского" Быстродействующий генератор случайных перестановок и сочетаний

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2613533C1 (ru) * 2016-02-08 2017-03-16 Федеральное государственное автономное образовательное учреждение высшего профессионального образования "Национальный исследовательский ядерный университет "МИФИ" (НИЯУ МИФИ) Устройство сдвига
RU2780985C1 (ru) * 2021-12-01 2022-10-04 федеральное государственное автономное образовательное учреждение высшего образования "Национальный исследовательский ядерный университет МИФИ" (НИЯУ МИФИ) Устройство для детектирования групп бит
RU2815502C1 (ru) * 2023-07-11 2024-03-18 федеральное государственное автономное образовательное учреждение высшего образования "Национальный исследовательский ядерный университет МИФИ" (НИЯУ МИФИ) Устройство для детектирования групп единичных бит и максимальных групп в блоках бинарной последовательности

Also Published As

Publication number Publication date
RU2011145864A (ru) 2013-05-20

Similar Documents

Publication Publication Date Title
KR100267009B1 (ko) 고속 암호화 처리를 위한 어레이 구조를 가지는 모듈러 곱셈장치
Wang et al. FPGA implementation of a large-number multiplier for fully homomorphic encryption
Bisheh Niasar et al. Efficient hardware implementations for elliptic curve cryptography over Curve448
Koppermann et al. X25519 hardware implementation for low-latency applications
Koppermann et al. Low-latency X25519 hardware implementation: Breaking the 100 microseconds barrier
JP2002229445A (ja) べき乗剰余演算器
Kwon et al. Efficient linear array for multiplication in GF (2 m) using a normal basis for elliptic curve cryptography
RU2488161C1 (ru) Устройство перестановок и сдвигов битов данных в микропроцессорах
He et al. Kina: Karatsuba initiated novel accelerator for ring-binary-lwe (rblwe)-based post-quantum cryptography
Nawari et al. Fpga based implementation of elliptic curve cryptography
Reyhani-Masoleh A new bit-serial architecture for field multiplication using polynomial bases
KR100478974B1 (ko) 직렬 유한체 승산기
Rashidi et al. Full‐custom hardware implementation of point multiplication on binary edwards curves for application‐specific integrated circuit elliptic curve cryptosystem applications
Hlaváč et al. Arithmetic unit for computations in GF (p) with the left-shifting multiplicative inverse algorithm
CN107463354A (zh) 一种面向ECC的双域并行度可变的Montgomery模乘电路
Sghaier et al. High speed and efficient area optimal ate pairing processor implementation over BN and BLS12 curves on FPGA
KR100962127B1 (ko) 로페즈-다하브 알고리즘 기반 유한체상의 고속 타원곡선암호프로세서
Simoes et al. Self-Timed Masking Implementing First-Order Masked S-Boxes Without Registers
Rahman et al. Efficient hardware implementation of RSA cryptography
CN1550975A (zh) 蒙哥马利模数乘法器及其方法
RU2798746C1 (ru) Вычислительное устройство
Niasar Efficient and Secure Implementation of Classic and
Puligunta et al. Squeezing Area of the Versatile $ GF\left (2^ m\right) $ GNB Arithmetic Operators
Grzymala-Busse On the endomorphisms of finite automata
Niasar Efficient and Secure Implementation of Classic and Post-quantum Public-Key Cryptography

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20171115