Организация на компютрите Печат

Задание: Да се проектира схемен множител по метода на Бут на два разряда едновременно за числа с фиксирана запетая в допълнителен код. За по-голямо бързодействие да се проектира като дърво на Уолес.

Различните операции имат различна продължителност. Продължителността на операцията “умножение” е значително по-голяма от операцията “събиране”, което поражда необходимостта от създаването на метод на умножение с по-голямо бързодействие. Тези методи се основават на създаването на конкретни връзки. Важно е да се отбележи, че те не гарантират определен коефициент на ускорение!

Метода на Бут представлява ускорен метод за умножение на две числа и се основава на възможността в множителя да се срещнат компактни групи от еднакви цифри. Извършва се наблюдение на комбинациите от цифри. За метода с умножение с изместване на два разряда едновременно се използва следната таблица за извършване на съответните операции

Xi+1

Xi

Xi-1

Операция

0

0

0

+ 0

0

0

1

+ Y

0

1

0

+ Y

0

1

1

+ 2.Y

1

0

0

- 2.Y

1

0

1

- Y

1

1

0

- Y

1

1

1

+ 0

Трябва да се отбележи, че метода на Бут не винаги се оказва ефикасен и по бърз. При определени комбинации от цифри като например последователното редуване на “0” и  “1” забавят значително извършването на умножението спрямо процеса на умножение на същите числа, но по друг метод.

В блоксхемата съм използвал суматор, който е предназначен да събира и изважда. Изваждането е реализирано чрез инвертиране на рег.Z от допулнителен в прав код като инвертираната стойност се събира с “1”. В практическата схема съм реализирал този суматор с два допълнителни мултиплексора – единия е разширения MUX от блоксхемата, който е превърнат в тривходов като на единия вход се подава “1”, която използвам за преобразуването на числото от рег. Z от допълнителен в прав код за да извърша изваждането. Другия подава правата или инвертираната стойност на рег. Z

УС0 – Рег. (Z)(X)(Y) : = 0

УС1 – Бр : = 0

УС2 – Рег. X[5,1] : = X[4,0] ;                 Рег. X[6] : = X[5]; Рег. X[0] : = 0

УС3 – Рег. Y[4,0] : = Y[4,0] ;                  Рег. Y[9] : = Y[5];    Рег. Y[8,5] : = 0

УС4 – Рег. X[2,0] = [001; 010; 101; 110]            =>           MUX : = Рег. X

УС5 – Рег. X[2,0] = [011; 100]                             =>           MUX[0] : = 0;

MUX[11,1] : = Рег.Y[10,0];                                   MUX[12] : = Рег.Y[12]

УС6 – Рег. X[2,0] = [001; 010; 011]                    =>           СМ : = Рег.Z + MUX

УС7 – Рег.Z : = СМ

УС8 – Рег. X[2,0] = [100; 101; 110]                    =>           СМ : = Рег.Z – MUX

УС9 – Рег. X[9,0] : = Рег. X[11,2]

УС10 – Рег. Y[11,2] : = Рег. Y[9,0]

УС11 – Бр. : = Бр + 1

УС 12 – MUX(X) : = РегZ

УС 13 – MUX(X) : = РегZ

УС 14 – MUX(Y) : = 1