Теория автоматов

Автор: Пользователь скрыл имя, 23 Ноября 2012 в 10:03, курс лекций

Описание работы

Конечные автоматы и такие связанные с ними конструкции как линейные грамматики и регулярные выражения относятся к важнейшим понятиям информатики. Различные варианты конечных автоматов и близкие им математические объекты служат для описания и анализа технических устройств, различных систем и процессов, программ и алгоритмов. Теория автоматов является одним из старейших разделов теоретической информатики.
В читаемом курсе рассматриваются цифровые автоматы как теоретическая основа проектирования аппаратных средств ЭВМ последовательного типа. В этом случае принято рассматривать цифровой автомат как совокупность операционного автомата (исполнительного устройства) и управляющего автомата (собственно конечного автомата), образующих операционное устройство.

Содержание

Теория автоматов. Введение.
Теория автоматов. Арифметика ЦВМ
Теория автоматов. Системы счисления
Теория автоматов. Конечные цифровые автоматы.

Работа содержит 1 файл

ta.doc

— 1.01 Мб (Скачать)

 

Ответ: [C]д=1.0011 0001. Четыре старших разряда произведения находятся в сумматоре, а четыре младших – в РгВ.

Умножение двоичных чисел с фиксированной  запятой на ДСОК, схема 2

Схема  Горнера в этом случае имеет вид

[C]o=[A]o´(b12-1+b22-2+…+bn2-n – SgB + SgB2-n)=

=SgB[`A]o+2-1(b1 [A]o+2-1 (b2[A]o+…+2-1(bn [A]o+SgB[A]o+0))…),

 (7)

При сложении в обратном коде единица, спадающая со знакового разряда  подсуммируется в младший разряд произведения в том же такте. Поэтому в этой схеме требуется двойная точность сумматора и РгА. Рассмотрим пример умножения, приняв следующие значения операндов: А=-0.1101, В=-0.1011. В соответствии с изложенным выше, коды операндов имеют вид:

[A]o=11.0010 1111, [B]o=1.0100. Процедура умножения в соответствии с алгоритмом (7) приведена в таблице 4.

Таблица 4 Умножение на ДСОК, схема 2

СМ

РгВ

СТ

Комментарии

11.1111 1111

+  11.0010 1111

     11.0010 1110

+                      1

      11.0010 1111

1.0100

4

СМ:=0, РгА:=[A]om|1111, РгВ:=[B]o, СТ:=4,

   

SgB=1? Да Выполняем первую коррекцию.

СМ:=СМ+РгА,

11.1001 0111

1 1.010

3

РгВ[4]=1? НЕТ Пропускаем такт подсуммирования. Выполняем сдвиги. РгВ:=R(1)РгВ, СМ:=R(1)СМ, СТ:=СТ-1,

 

 

11.1100 1011

+  11.0010 1111

10.1111 1010

+                   1

10.1111 1011

11 1.01

2

СТ=0? НЕТ РгВ[4]=1? НЕТ Пропускаем такт подсуммирования. Выполняем сдвиги. РгВ:=R(1)РгВ, СМ:=R(1)СМ, СТ:=СТ-1,

   

СТ=0? НЕТ РгВ[4]=1? ДА СМ:=СМ+РгА,

11.0111 1101

111 1.0

1

Выполняем сдвиги. РгВ:=R(1)РгВ, СМ:=R(1)СМ,

СТ:=СТ-1,

11.1011 1110

  +00.1101 0000

00.1000 1110

+                      1

00.1000 1111

1111 1.

0

СТ=0? ДА Проверяем значение знака РгВ. РгВ[4]=1? ДА Выполняем коррекцию СМ:=СМ+Рг`А,


 

Ответ: [C]o=00.1000 1111.

Примечания.

  1. Так как при умножении всегда получается двойная точность результата, которой соответствует двойная точность сумматора, переполнение разрядной сетки не возникает. Однако в схеме 2 используется модифицированный код, так как переполнение разрядной сетки может возникать в частичных произведениях, которое устраняется при последующем сдвиге сумматора вправо.  Во всех остальных схемах умножения применение модифицированного кода не требуется.
  2. Схема 2 умножения  является единственной, в которой  при умножении в дополнительном коде может использоваться сумматор одинарной точности. При этом, как видно из приведенной выше примера, младшие разряды произведения накапливаются в старших разрядах регистра множителя и сдвигаются вместе с ним, так что старшие разряды в конце операции умножения находятся в сумматоре, а младшие в регистре множителя. При умножении в обратном коде применение такого приема невозможно, так как при умножении в обратном коде единица переноса из знакового разряда сумматора должна подсуммироваться в младший разряд суммы.  Поэтому при умножении по схеме 2 на ДСОК используется сумматор двойной точности и модифицированный код.

Умножение двоичных чисел с фиксированной  запятой на ДСДК, схема 3

Схема Горнера в этом случае имеет  вид:

[C]д = [A]д (b12-1+b22-2+…+bn2-n-1)=( [A]д *2-n)  (b12n-1+b2 2n-2+…+bn-1 2+bn –SgB 2n)=

=[A ]д*  (b12n-1+b2 2n-2+…+bn-1 2+bn –SgB 2n)=

=SgB([ `A ]д+b1([A ]д 2n-1)+b2([A ]д 2n-2 )+…+bn-1([A ]д 2)+bn [A ]д

(8)

Из выражения (8) следует, что 

  1. множимое в начале выполнения операции сдвигается на n разрядов вправо; поэтому регистр А должен иметь двойную точность;
  2. при  умножении на отрицательный множитель выполняется одна коррекция в конце выполнения операции умножения;
  3. разряды  множителя анализируются, начиная с младшего разряда;
  4. множимое в каждом цикле умножения сдвигается на один разряд влево.

Пример. Пусть А=0,1101, В=-0,1011. С учетом сказанного выше. РгА после сдвига на n-4 разряда влево содержит  число 0,0000 1101, [B]д =1.0101. Процедура выполнения умножения приведена в таблице 5.

Таблица 5 Умножение на ДСДК, схема 3

СМ

РгА

РгВ

СТ

Комментарии

0.0000.0000

0.0000.1101

1.0101

4

СМ:=0, РгА:= [A ]д, РгВ:= [В]д, СТ:=4,

+0.0000.1101

0.0000.1101

     

РгВ[4]=1? ДА

СМ:=СМ+РгА,

 

0.0001 1010

-1.010

3

СТ=0? НЕТ

РгА:=L(1) РгА, РгВ:=R(1)РгВ, СТ:=СТ-1,

 

0.0011 0100

--1.01

2

РгВ[4]=1? НЕТ

Пропускаем такт подсуммирования.

Выполняем сдвиги РгА и РгВ и  декремент счетчика.

0.0000 1101

+0.0011 0100

0.0100 0001

     

РгВ[4]=1? ДА

СМ:=СМ+РгА,

 

0.0110 1000

---1.0

1

СТ=0? НЕТ

РгА:=L(1) РгА, РгВ:=R(1)РгВ, СТ:=СТ-1,

 

0.1101 0000

----1.

0

РгВ[4]=1? НЕТ

Пропускаем такт подсуммирования.

Выполняем сдвиги РгА  и РгВ и декремент счетчика.

0.0100 0001

+1.0011 0000

1.0111 0001

     

СТ=0? ДА

Проверяем значение знака  В. Так как SgB=1, выполняем коррекцию.

СМ:=СМ+Рг`А,


 

Ответ: [C]д=1.0111 0001. Или в естественной записи  С=-0.1000 1111.

Умножение двоичных чисел с фиксированной  запятой на ДСОК, схема 3

Схема Горнера в этом случае имеет  вид:

[C]о = [A]о (b12-1+b22-2+…+bn2-n-SgB +SgB 2-n)=

( [A]o *2-n)  (b12n-1+b2 2n-2+…+bn-1 2+bn –SgB 2n + SgB)=

=[A ]o*  (b12n-1+b2 2n-2+…+bn-1 2+bn –SgB 2n + SgB)=

=SgB([ `A ]o 2n + b1([A ]o 2n-1)+b2([A ]o 2n-2 )+…+bn-1([A ]o 2)+bn [A ]o +SgB [A]o.

(9)

Из (9) заключаем, что в этом случае вначале выполняется коррекция +SgB[A]o, а затем все происходит так же, как в предыдущем примере. Пример выполнения умножения приведен в таблице 6.

Таблица 6 Умножение двоичных чисел на ДСОК, схема 3

СМ

РгА

РгВ

СТ

Комментарии

1.1111 1111

+1.1111 0010

1.1111 0001

+               1

1.1111 0010

1.1111 0010

1.0100

4

СМ:=0, РгА:= [A’]o, РгВ:=[B]o, СТ:=4,

     

SgB=1?ДА

Выполняем первую коррекцию. СМ:=СМ+РгА,

 

1.1110 0101

-1.010

3

РгВ[4]=1? НЕТ

Пропускаем такт подсуммирования.

СТ=0? НЕТ

РгА:=L(1) РгА, РгВ:=R(1)РгВ, СТ:=СТ-1,

 

1.1100 1011

--1.01

2

РгВ[4]=1? НЕТ

Пропускаем такт подсуммирования.

СТ=0? НЕТ

РгА:=L(1) РгА, РгВ:=R(1)РгВ, СТ:=СТ-1,

1.1111 0010

+1.1100 1011

1.1011 1110

     

РгВ[4]=1? ДА

СМ:=СМ+РгА, здесь уже  подсуммирована единица, спадающая со знакового разряда.

 

1.1001 0111

---1.0

1

СТ=0? НЕТ

РгА:=L(1) РгА, РгВ:=R(1)РгВ, СТ:=СТ-1,

 

1.0010 1111

----1.

0

РгВ[4]=1? НЕТ

Пропускаем такт подсуммирования.

СТ=0? НЕТ

РгА:=L(1) РгА, РгВ:=R(1)РгВ, СТ:=СТ-1,

1.1011 1110

+0.1101 0000

0.1000 1111

     

СТ=0? ДА

РгВ[4]=1 ДА

Выполняем вторую коррекцию  СМ:=СМ+Рг`А,

Конец. В сумматоре  находится результат умножения.


 

Умножение двоичных чисел с фиксированной  запятой на ДСДК, схема 4

Схема Горнера в этом случае имеет  вид:

[C]д = [A]д (b12-1+b22-2+…+bn2-n-1)=( [A]д *2-n)  (b12n-1+b2 2n-2+…+bn-1 2+bn –SgB 2n)=

=[A ]д*  (b12n-1+b2 2n-2+…+bn-1 2+bn –SgB 2n)=

=bn[A’]д + 2(bn-1[A’]д + … + 2(b1[A’]д + 2(SgB [`A’]д + 0))…)

(10)

Пример. Пусть А=-0.1101, В= - 0.1011. Процесс вычислений приведен в таблице 7.

Таблица 7 Умножение двоичных чисел с фиксированной запятой на ДСДК, схема 4

СМ

РгВ

СТ

Комментарии

0.0000 0000

+0.0000 1101

0.0000 1101

1.0101

4

СМ:=0, РгА:=[A’]д , РгВ:=[B]д, СТ:=4,

   

SgB=1? ДА

Коррекция: СМ:=СМ+Рг`А,

0.0001 1010

0101 1.

 

СМ:= R(1) CM, РгВ:=СдвЦ L(1) РгВ, (циклический сдвиг),

0.0011 0100

101 1.0

3

РгВ[0]=1? НЕТ

Пропускаем такт подсуммирования.

СТ=0? НЕТ

СМ:= R(1) CM, РгВ:=СдвЦ L(1) РгВ, (циклический сдвиг), СТ:=СТ-1,

0.0011 0100

+1.1111 0011

0.0010 0111

   

РгВ[0]=1 ДА

СМ:=СМ+РгА,

0.0100 1110

01 1.01

2

РгВ[0]=1? НЕТ

Пропускаем такт подсуммирования.

СТ=0? НЕТ

СМ:= R(1) CM, РгВ:=СдвЦ L(1) РгВ, (циклический сдвиг), СТ:=СТ-1,

0.1001 1100

+1.1111 0011

0.1000 1111

1 1.010

1

РгВ[0]=1 ДА

СМ:=СМ+РгА,

   

0

СТ:=СТ-1,

     

СТ=0? ДА Выход из цикла. Результат умножения на сумматоре,  С=0.1000 1111.


 

 

Умножение двоичных чисел с фиксированной  запятой на ДСОК, схема 4

Схема Горнера в этом случае имеет вид:

[C]о = [A]о (b12-1+b22-2+…+bn2-n-SgB +SgB 2-n)=

( [A]o *2-n)  (b12n-1+b2 2n-2+…+bn-1 2+bn –SgB 2n + SgB)=

=[A ]o*  (b12n-1+b2 2n-2+…+bn-1 2+bn –SgB 2n + SgB)=

= SgB [A’]o +bn[A’]o+2(bn-1[A’]o+…+2(b1[A’]o+ 2(SgB([ `A ]o +0))…).

(11)

Пример Примем А=-0.1101, В=-0.1011.  Тогда [A’]o=1.1111 0010, [B]o=1.0100. Микрооперации, выполняемые при умножении, представлены в таблице 8.

Информация о работе Теория автоматов