Главная страница  Алгебраическая теория кодирования 

[0] [1] [2] [3] [4] [5] [ 6 ] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78]

tflipaenemw для X

управление

для у управление

дляг


Тактовые часы

Рис. 2.5. Триггер с тремя входами.


Перевести с в

Перевести 0» левый сдвиг А

Перевести С в левый сдвиг В

Р и с 2 6 Сдвиг регистра или прибавление содержимого регистра к содер жимому другого регистра.

гер регистра С имеет три возможных входа, а именно «левый сдвиг содержимого Л-регистра», «левый сдвиг содержимого 5-регистра» и «покомнонентная сумма содержимого регистров А и 5». Заметим, что сигналы управления «перевести С в А @ В», «перевести С в левый сдвиг Л» и «перевести С в левый сдвиг В» подаются в каждый триггер регистра С. Таким образом, соответствующий сигнал команды воздействует сразу на весь регистр С.

Цепь, изображенная на рис. 2.6, является двухтактовой, так как тактовые сигналы для регистров А, В и С яе совпадают. Регистры Л я В должны управляться только в течение одного такта.

перевести Met


Перевести L в "м или сдвигм

£



Перевести L в "ми сдвигМ"

Рис. 2.7. Регистр для выполнения операций логического умножения «М И левый сдвиг М» и логического сложения «М ИЛИ левый сдвиг М».

а регистр С - в течение другого. Такое использование тактовых часов исключает любые состязания и связанные с этим нарушения функционирования, которые могут возникнуть, если попытаться устанавливать состояние самого регистра и одновременно использовать его выход для установления еще какой-нибудь команды.

Сдвиг регистра А влево осуществляется в два шага. Сначала в регистре С устанавливается команда левого сдвига регистра А, а затем это управляющее воздействие передается на регистр А. Полная операция реализуется за две временные фазы или один полный временной цикл. Подобным же образом осуществляется сложение содержимых регистров А и В или сдвиг влево регистра В. Каждая из этих операций также занимает один временной цикл. Аналогично, в схеме рис. 2.7 регистр М работает в одной фазе временного цикла, а регистр L - в другой фазе. Эта цепь позволяет ])еализовать операции типа «М И левый сдвиг М» и «М ИЛИ левый сдвиг М». Каждая из этих операций занимает также один временной цикл. Наконец, на рис. 2.8 изображена схема, выполняющая несколько более сложную операцию, а именно реализующая команду «записать символы В, расположенные слева от наиболее левого



нуля В М, В соответствующие позиции С». Эта команда является второй фазой в полном цикле команд «прибавить к соответствующим

Записать символы В, расположенные слова от наиболее левого нуля в М, в соответствующие позиции С

Рис. 2.8. Схема для выполнения более сложной команды.

символам В те символы А, которые расположены слева от наиболее левого нуля в регистре М». Нетрудно сконструировать аналогичные

Сдвиг А влево


Прибавить Вк А

X и левый сдвиг X Рис. 2.9. Сокращенное обозначение логических схем.

схемы, реализующие и другие простые логические операции подоб-. ного типа.

Так как диаграммы, примеры которых представлены на рис. 2.6- 2.8, употребляются все чаще, то намечается тенденция к использо-: ванию для них сокращенных изображений, приведенных на рис. 2.9. В этих изображениях опускаются множество управляющих команд f и регистры второго такта временного цикла.

*2.3. Мультипликативное обращение

Рассмотрим теперь задачу определения мультипликативного обратного для элементов поля классов вычетов по модулю некоторого неприводимого двоичного многочлена М (х) степени т. Для заданного класса вычетов, содержащего многочлен г (х) степени < т, необходимо найти такой многочлен р (х) степени <; т, чтобы их произведение удовлетворяло сравнению

г (х) р (х) = 1 mod М (х),

что эквивалентно равенству г (х) р {х) + М (х) g (х) = 1 для некоторого многочлена q (х). Так как М (х) неприводим, то н.о.д. М и г равен единице. Следовательно, можно применить вариант непрерывных дробей алгоритма Евклида, описанный в разд. 2.1. Начиная с r-> = М, г-1> = г, р<-2 = О, р<-1 = 1, д<-2> = 1, g-i) = О, используем алгоритм определения а< и г<-\ таких, что

r(- 2) = а()г(-1) + rW, deg rW < deg r-1). Затем полагаем

q(k) + q(>~),

p(ft) a(ft)p(ft-1) p(ft-2)

Итерацию продолжаем до тех пор, пока не получим г" = 0. При

этом решение задается равенствами

q = g<"-i.

Р = Р

(П-1)

deg g < deg г и deg р < deg М = т. Так как нам необходимо найти только р (q практически нам не нужно), то можно обойтись только величинами (р*}.

Прежде чем переходить к логическим устройствам, рассмотрим пример. Предположим, что г (х) = х* + х + I и М (х) = х + -f х + 1. Один из возможных методов вычисления а*, г*» и состоит в следующем:

2.31. Вычисления.

г(-2) 1а;б 0а;4 -{-. Ох -}- 1x2 + Ох + 1, г<-1> = 0x5 0x3 + 0x2 + 1х +1,

г<-> = 1x5 + Ох* + 0x3 + 1а;2 4- Ох +1, хг-" = 1x5 Qi 0а;3 1а;2

г<-« . хг- 0x5 Ох« + Ох» + 0x2 -Ь 1х + 1, хг<-" =--: 1x5 4. Qi 0x3 ia.2 la-

а° = х.

г" = Ох* -f 0x3 + 0x2 -f 1х +1, г-" = 1х* + 0x3 + 0x2 + 1х -f 1,



г<°=1х + 1, г<»=0х+1,

•"» = 1х+1,

2.32. Вычисления.

хр<-" =

х/?<-" = хр-" + р-" = <-о -

хг<» = 1х,

г«» + х/-<» = 0хН хг"> = 1х,

г<»> + хг<» = 1, г<" = 1,

г"" + (х+1)г"> = 0, г<"=1.

-Ох Ох

+ 0х,

+ 1х,

+ 0х, + 1х,

+ 0x2,

+ 1X2,

а<==х + 1.

(0)

г" = 0, г<" = 1.

В данном случае, очевидно, получаем

г<-2=х5 + л:2+1, г-" = х* + х +1,

=х+1, ,

г<" = 1, г> = 0,

а°=х,

„(1) 3

a;.J+x2 + x,

а< = х + 1.

1 +0х +0x2 -Ь 0x3,

0x2+1x3,

1 + 0x4-0x2+ 0x3 +Ох*, 0x3 + 14

1 +Ох+ 0x2+ 0x3 +1.4 0x3 j

1 + 0х + 0х2 + 0хЗ + 1х*, 0x2+ 1x3 +Ох*,

Ох + 0x2 + 1х + 1х*, 0x2 1а:3 Ох*,

р<-1) + (а;3 + а;2) р» = 1 + Ох + 0x2 + 1хЗ + 1х*,

Ох+1x2+ 0x3 +Ох*,

0х+1х2 + 1хЗ + 1х*, Ох+1x2+ 0x3 +Ох*,

1 + 0х + 1х2 + 1хЗ + 1х*, 0 + 1х + 0х2 + 0хЗ + 0х*,

Х2р«":

хЗр<»> =

+ хЗр"» хЗр<»

(-1) [ а;3р«

Х2р (Х3 + Х2) р«"

,(0)

D<--"(X3 + X2+X) р"» ,0) -

= l-J-i

хр" =

р<1=

„(0) 1

Начиная с р<"2)о и р<-" = 1, для величин имеем

Р<-=-=0, р<-» = 1,

= X,

Р»=1+Х2 + Х3 + Х*,

р<2> = 1 а;2 + х

Чтобы избежать запоминания коэффициентов а*", целесообразно выполнять эти вычисления одновременно с вычислением г*". Это позволяет записать

а;г<»> = Ох* + Ох» + 1х« + 1х, г-» = 1х* + 0x3 + 0x2 + 1х +1,

xV" = 0x + 1x3 +1x2, r<-" = lx* + 0x3 + 0x2-f lx+1,

xV» = lx* + lx»,

Г-I = Ix* + 0x3 ц 0a;2 -f la; +1,

г-" + хг"» = Ox* + ix* + 0x2 + Ix +1,

xV 1x3+ 1x2, r<-i + хг» = 1x3 4- 0x2 f la; +1,

X2r«» = lx3 + lx2, r<-l) 4- (x3 + X2) r<° = 0x3 -f- 1x2 + Ix + 1,

Xr<°> = 1x2 + Ix,

r<-" + (a + a;2) r<°> = 1x2 + Ix +1,

Xr"» = lx2+lx, r<-l + (x3 + X2 + X) r°> = 0x2 + Ox + 1,




[0] [1] [2] [3] [4] [5] [ 6 ] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78]

0.0262