Opis patentowy opublikowano: 25.02.1981 Int. Cl.2 G06F 7/39 CZt LLNIA MMI fo; ' t Twórcy wynalazku: Valerij Fedorovic Gusev, Gennadij Nikolaevic Ivanov, Vladi- mir Jakovlevic Kontarev, Genrich Is*aevic Krengel, Mansur Zakirovic Sagivaleev, Vjaceslav Jakovlevic Kremlev, Jurij Ivanovic Scetinin, Azat Usmanovic Jarmuchametov Uprawniony z patentu: Valerij Fedorovic Gusev, Kazan; Gennadij Nikolaevic Iva- nov, Kazan; Mansur Zakirovic Sagivaleev, Kazan; Azat Usmanovic Jarmuchametov, Kazan; Genrich Isaevic Kren¬ gel, Kazan; Vladimir Jakovlevic Kontarev, Moskwa; Vja- ceslav Jakovlevic Kremlev, Moskwa; Jurij Ivanovic Sce- tinin, Moskwa (Zwiazek Socjalistycznych Republik Ra- dzieckich) - _^ Urzadzenie do mnozenia liczb, wyrazonych w kodzie uzupelniajacym Wynalazek odnosi sie do dziedziny cyfrowych maszyn liczacych, a dokladniej do urzadzen do mnozenia liczb wyrazonych w kodzie uzupelniajacym i moze byc wyko¬ rzystany w procesorach elektronicznych maszyn cyfro¬ wych.Ze znanych urzadzen do mnozenia liczb wyrazonych wr kodzie uzupelniajacym, najbardziej zblizonym roz¬ wiazaniem technicznym do rozwiazania przedstawionego wr niniejszym wynalazku jest urzadzenie do mnozenia liczb, zawierajacych rejestr, przeznaczony do magazyno¬ wania mnoznika i rejestr przeznaczony do magazyno¬ wania mnoznej, polaczony z jednym wejsciem bloku aryt¬ metycznego, drugie wejscie które podlaczone jest do wyj¬ scia rejestru przesuwajacego. Wejscie informacyjne re¬ jestru przesuwajacego polaczone jest z wyjsciem infor¬ macyjnym bloku arytmetycznego, a wejscie sterujace re¬ jestru przesuwajacego podlaczone jest do bloku stero¬ wania. Do bloku sterowania podlaczone sa równiez wejs- magazynowania mnoznika, wejscie informacyjne którego polaczone jest z rejestrem przesuwajacym i wejscie ste¬ rujace bloku arytmetycznego, polaczonego z rejestrem przeniesienia.Zgodnie z zasadami dzialania maszyn liczacych, w których wykorzystywane jest znane urzadzenie do mno¬ zenia liczb, argumenty operacji powinny byc wyrazone w dodatkowym kodzie, w zwiazku z czym dokonuje sie wstepnej analizy znaku iloczynu i zapamietywanie go w przerzutniku. Nastepnie okresla sie wartosci bezwgled¬ ne czynników, które wprowadzane sa odpowiednio do 2 rejestru mnoznej i do rejestru mnoznika. W ciagu jed¬ nego cyklu mnozenia wykonuje sie mnozenie przez jedna pozycje mnoznika. Do licznika wprowadza sie konstante (stala) liczby cykli mnozenia, równa liczbie pozyqi mnoz- 5 nika.Mnozenie realizuje sie poprzez wielokrotne wykonanie dzialan, okreslanych przez wartosc nizszej pozycji mnoz¬ nika w danym cyklu mnozenia. Jesli zawartosc nizszej pozycji mnoznika równa sie jedynce, wówczas odbywa sie 10 sumowanie mnoznej i czastkowego iloczynu, przechowy¬ wanego w rejestrze przesuwajacym oraz zapis do rejestru przesuwajacym nowego iloczynu czastkowego z przesu¬ nieciem o jedna pozyq'e w prawo. Jesli zawartosc nizszej pozycji mnoznika równa sie zeru, wówczas odbywa sie 15 tylko przesuniecie iloczynu czastkowego o jedna pozycje w prawo, a sumowania nie dokonuje sie. Jednoczesnie z tym odbywa sie przesuniecie mnoznika o jedna pozycje w prawo, wysunieta pozycje gubi sie, a na miejsce zwol¬ nionej wyzszej pozycji rejestru przeznaczonego do maga- 20 zynowania mnoznika przejmowana jest nizsza pozycja iloczynu z rejestru przesuwajacego. Po wykonaniu jed¬ nego cyklu mnozenia od zawartosci licznika odejmowana jest jedynka. Proces mnozenia trwa dotad, az zawartosc licznika nie stanie sie równa zeru. Po zakonczeniu operaq'i 25 mnozenia wyzsze slowo iloczynu znajduje sie w rejestrze przesuwajacym, a nizsze slowo — w rejestrze przeznaczo¬ nym do magazynowania mnoznika. Wedlug analizy zna¬ ku iloczynu liczb dokonuje sie przeksztalcenia uzyskanej wartosci bezwzglednej liczby ujemnej w kod uzupelnia- 30 jacy. 108 592108 592 3 W ten sposób opisane urzadzenie wykonuje mnoze¬ nie tylko przez jedna pozycje ninoznika w ciagu jednego cylku mnozenia, co nie odpowiada wspólczesnym wy¬ maganiom stawianym wobec szybkosci dzialania proce¬ sora elektronicznej maszyny cyfrowej. Oprócz tego, niez¬ bedne sa dodatkowe dzialania w sferze analizy znaków argumentów operacji i przeksztalcenie ich w kod bez¬ posredni, a takze w zaleznosci od wyników analizy znaku iloczynu przeksztalcenie wartosci bezwzglednej ujem¬ nego wyniku w kod uzupelniajacy. Wszystko to wymaga dodatkowych nakladów czasu, znacznie obnizajacych szyb¬ kosc dzialania urzadzenia.Celem wynalazku jest zaprojektowanie i wykonanie urzadzenia do mnozenia liczb wyrazonych w kodzie uzu- pelnjflriacym, zrealizowanie którego pozwoliloby dokony¬ wac mnozenia przez dwie pozycje mnoznika z uwzgled¬ nieniem trzeciej w ciagu jednego cyklu mnozenia i, oprócz terfo, uzyskiwac ujemny wynik w kodzie uzupelniajacym be^dodatkowych wyliczefi.Postawione zadanie rozwiazane jest w ten sposób, ze w urzadzeniu do mnozenia liczb wyrazonych w kodzie, uzupelniajacym, zawierajacym rejestr przeznaczony do magazynowania mnoznika i rejestr przeznaczony do ma¬ gazynowania mnoznej, polaczony z jednym wejsciem bloku arytmetycznego, drugie wejscie którego podlaczone jest do wyjscia rejestru przesuwajacego, przy czyim wejscie informacyjne rejestru przesuwajacego polaczone jest z wyjsciem informacyjnym bloku arytmetycznego, jedno wejscie sterujace rejestru przesuwajacego podlaczone jest 3b bloku sterowania, do którego podlaczone sa wejscie licznika, wejscie sterujace rejestru przeznaczonego do ma¬ gazynowania mnoznika, wejscie informacyjne którego po¬ laczone jest z rejestrem przesuwajacym, i wejscie ste¬ rujace bloku arytmetycznego, polaczonego z rejestrem przeniesienia, zgodnie z wynalazkiem, przewidziane sa rejestry, przeznaczone do magazynowania zadanej liczby pozycji mnoznika z tym, iz wejscia informacyjne jednego z nich polaczone sa z rejestrem przeznaczonym do maga¬ zynowania mnoznika, a wyjscia informacyjne i wejscia sterujace tego rejestru polaczone sa z blokiem sterowania, przy czym wejscia informacyjne drugiego rejestru przez¬ naczonego do magazynowania zadanej liczby pozycji mnoznika polaczone sa z wyjsciami grupy elementów logicznych I-NIE, wejscia której podlaczone sa do re¬ jestru przeznaczonego do magazynowania mnoznika, a jej wejscia sterujace podlaczone sa do wyjscia licznika, po¬ laczonego z drugim rejestrem przeznaczonym do magazy¬ nowania zadanej liczby pozycji mnoznika, wejscie ste¬ rujace i wyjscia informacyjne którego podlaczone sa do bloku sterowania i, oprócz tego, urzadzenie zawiera ele¬ ment logiczny I-NIE, wejscie sterujace którego pdlaczone jest do wyjscia sterujacego bloku arytmetycznego, jego wejscie informacyjne podlaczone jest do rejestru przenie¬ sienia, a wyjscie polaczone jest z drugim wejsciem ste¬ rujacym rejestru przesuwajacego.W dalszym ciagu opisu wynalazek objasniony jest na przykladzie wykonania i przy wykorzystaniu zalaczonego rysunku, na którym przedstawiony jest schemat blokowy urzadzenia do mnozenia liczb, wyrazonych w kodzie uzu¬ pelniajacym.Urzadzenie do mnozenia liczb wyrazonych w kodzie uzupelniajacym zawiera rejestr 1 przeznaczony do maga¬ zynowania mnoznika i rejestr 2 przeznaczony do maga¬ zynowania mnoznej, polaczony z wejsciem 3 bloku aryt¬ metycznego 4. Wejscie 5 bloku arytmetycznego 4 po- 4 laczone jest z wyjsciem rejestru 6 przesuwajacego. Wejscie informacyjne 7 rejestru 6 przesuwajacego polaczone jest z wyjsciem informacyjnym bloku arytmetycznego 4. Wyjs¬ cie bloku 8 sterowania polaczone jest z wejsciem steru¬ jacym 9 rejestru 6 przesuwajacego, z wejsciem 10 licz¬ nika 11, z wejsciem 12 rejestru 1. z wejsciem 13 bloku arytmetycznego 4 i z wejsciemi sterujacymi 14 i 15 re¬ jestrów 16 i 17 przeznaczonych do magazynowania za¬ danej liczby pozycji mnoznika. Wejscie informacyjne 18 rejestru 1 polaczone jest z rejestrem 6 przesuwajacym.Wyjscia grupy pozycji 19, 20, 21 rejestru 1 polaczone sa z wejsciami informacyjnymi pozycji 22, 23, 24 rejestru 17 i poprzez grupe elementów logicznych 25, 26, 27, I-NIE, polaczone sa z wejsciami informacyjnymi po¬ zycji 28, 29, 30 rejestru 16. Wyjscia informacyjne po¬ zycji 22 i 28, 23 i 29, 24 i 30 rejestrów 16 i 17 sa ze soba zlaczone i polaczone z blokiem 8 sterowania.Wyjscie licznika 11 polaczone jest z wejsciami steru¬ jacymi grupy elementów logicznych 25, 26, 27 I-NIE i z wejsciem 31 wyzszej pozycji 32 rejestru 16. Wyjscie pozycji 32 rejestru 16 polaczone jest z wejsciem 33 bloku 8 sterowania.Wejscie rejestru 34 przeniesienia polaczone jest z blo¬ kiem arytmetycznym 4. Wejscie informacyjne 35 ele¬ mentu logicznego 36 I-NIE polaczone jest z rejestrem 34 przeniesienia, jego wejscie sterujace 37 polaczone jest z wyjsciem sterujacym bloku arytmetycznego 4. Wyjscie elementu logicznego 36 I-NIE polaczone jest z wejsciem sterujacym 38 rejestru 6 przesuwajacego.Za pomoca danego urzadzenia do mnozenia liczb wy¬ razonych w kodzie uzupelniajacym, odbywa sie mnoze¬ nie przez dwie pozyqe mnoznika z uwzglednieniem trze¬ ciej w ciagu jednego cyklu mnozenia, przy czym ujemne argumenty operacji brane sa w kodzie uzupelniajacym ze znakiem i ujemny wynik mnozenia liczb uzyskiwany jest równiez w dodatkowym kodzie.Urzadzenie dziala w sposób nastepujacy: bezposred¬ nio przed wykonaniem operaqi mnozenia liczb do re¬ jestru 2 wprowadza sie mnozna ze znakiem, do rejestru 1 wprowadza sie mnoznik ze znakiem. Rejestr 6 przesu¬ wajacy ustawia sie w pozycji zerowej. Rejestr 6 i rejestr 1 przedstawiaja soba rejestry przesuwajace o podwójnej dlugosci.W przygotowawczym takcie zawartosc rejestru 1, na sygnal z bloku 8 sterowania, na przyklad, mikroprogra- mowego, przychodzacy do wejscia sterujacego 12, prze¬ suwa sie o dwie pozycje w lewo. Do licznika 11 wprowa¬ dzana jest konstanta (stala), równa liczbie cykli mnoze¬ nia. Konstante (stala) znajduje sie ze Wzoru: gdzie: k — konstanta równa liczbie cykli mnozenia, m — pozycyjnosc mnoznika.Sygnaly z wyjsc grupy pozyqi 19, 20 i 21 rejestru 1 podawane sa do wejscia grupy elementów logicznych 25, 26-i 27 I-NIE. JesK zawartosc^ licznika It nie równa sie zeru, wówczas do wejsc sterujacych grupy elementów logicznych 25, 26, 27 I-NIE doprowadzany jest sygnal zezwalajacy na przechodzenie tej informacji.Z wyjscia grupy elementów logicznych 25, 26 i 27 I-NIE informacja wpisywana jest do odpowiednich pozycji 28, 29, 30 rejestru 16 na sygnal z bloku 8 sterowania, dopro¬ wadzany do wejscia sterujacego 14 rejesrtu 16. Tenze sam 10 15 20 25 30 35 40 45 50 55 69108 592 5 sygnal z bloku 8 sterowania ustala pozycje 32 rejestru 16 na zero, poniewaz zawartosc licznika 11 nie równa sie zeru.Polozenie grupy pozycji 19, 20 i 21 rejestru 1 wy¬ bierane jest w sposób nastepujacy: pozycja 21 jest (n-l)-ta pozycja rejestru 1; pozycja 20 jest (n-2)-ta pozycja re¬ jestru lj pozycja 19 jest (n-3)-ta pozycja rejestru 1, gdzie n — numer nizszej pozycji rejestru 1. W ten sposób, do pozycji 30 rejestru 16 bedzie wpisana „zero", do pozycji 29 — ostatnia cyfra mnoznika, do pozycji 28 — przedos¬ tatnia cyfra mnoznika. Nastepnie rejestr 1 na sygnal z bloku 8 sterowania przesuwa sie o dwie pozycje w prawo i powraca do stanu wyjsciowego.W pierwszym cyklu mnozenia informacja z wyjscia rejestru 16 doprowadzana jest do bloku 8 sterowania, który wytwarza ciag sygnalów, okreslany przez zawar¬ tosc rejestru 16. Jednoczesnie z tym blok 8 sterowania wytwarza sygnal, doprowadzany do wejscia sterujacego 15 rejestru 17, który zezwala na zapis informacji do pozycji 22, 23, 24 rejestru 17. Informacja ta doprowadzana jest od odpowiednich pozycji 19, 20, 21 rejestru lv Przy tym w pozycjach 22 i 23 rejestru 17 ustalone sa dwie kolejne pozyqe mnoznika, a w pozycji 24 rejestru 17 — wyzsza pozycja poprzedniej pary pozycji mnoznika.Mnozenia dokonuje sie poprzez wielokrotne wykony¬ wanie dzialan przytoczonych w tablicy i okreslonych przez kolejnosc sygnalów, wytwarzanych przez blok 8 stero¬ wania w zaleznosci od zawartosci rejestrów 16 i 17.Tablica Zawartosc 32 0 1 ° 0 0 0 0 0 0 | 1 pozycji jestrów 16 i 17 28 22 0 0 0 0 1 1 1 1 0 29 23 0 0 1 1 0 0 1 i—i 0 re- 30 24 0 1 0 1 0 1 0 1 0 Wykonywanie elemen¬ tarnych operacji przesuniecie o dwie po¬ zyje w prawo dodawanie, przesuniecie o dwie pozycje w prawo dodawanie, przesuniecie o dwie pozycje w prawo przesuniecie o 1 pozycje w prawo, dodawanie, prze¬ suniecie o 1 pozycje w prawo przesuniecie o 1 pozycje w prawo, odejmowanie, przesuniecie o 1 pozycje w prawo odejmowanie, przesunie¬ cie o 2 pozycje w prawo odejmowanie, przesunie¬ cie o 2 pozycje w prawo przesuniecie o 2 pozycje w prawo koniec cyklu mnozenia | Na sygnaly, wytwarzane przez blok 8 sterowania, do¬ prowadzane do wejsc sterujacych 13 bloku arytmetycz¬ nego 4, do wejscia sterujacego 9 rejestru 6 przesuwajacego i do wejscia sterujacego 12 rejestru 1, wykonywane sa elementarne operacje, podane w tablicy. To znaczy, od¬ bywa sie albo dodawanie zawartosci rejestru 2 z czastko- 6 wym iloczynem, przechowywanym w rejestrze przesu¬ wajacym, oraz przesuniecie sumy o dwie pozycje w pra¬ wo, albo odejmowanie zawartosci rejestru 2 od czastko¬ wego iloczynu i przesuniecie nowego iloczynu czastko¬ wego o dwie pozycje w prawo itd.W kazdym cyklu mnozenia dokonuje sie synchronicz¬ nego przesuniecia zawartosci rejestru 6 przesuwaajcego i rejestru 1 przeznaczonego do magazynowania mnoz¬ nika, przy czym wysuwane nizsze pozycje mnoznika gubi sie, a nizsze pozycje iloczynu przechodza z rejestru 6 przesuwajacego do rejestru 1, zastepujac mnoznik.Szczególna wlasciwosc operacji przesuniecia zawiera sie w tym, ze jest ona wykonywana z rozprzestrzenieniem pozycji znakowej sumy iloczynów czastkowych przy prze¬ sunieciu w prawo.Jesli przy wykonywaniu dodawania lub odejmowania zawartosci rejestru 2 i rejestru 6 przesuwajacego odbywa sie przepelnienie sumatora (na figurze nie jest przedstawiony) bloku arytmetycznego 4, wówczas na wyjsciu sterujacym bloku arytmetycznego 4 pojawia sie sygnal doprowadzany do wejscia sterujacego 37 elementu logicznego 36 I-NIE.Sygnal ten zezwala na przechodzenie, poprzez element logiczny 36 I-NIE, sygnalu doprowadzanego do wejscia 35 z wyjscia rejestru 34 przeniesienia. Sygnal z wyjscia elementu logicznego 36 I-NIE doprowadzany jest do wejscia sterujacego 38 rejestru 6 przesuwajacego i za¬ pamietywany jest jako pozycja znakowa. To pozwala mnozyc liczby, wyrazone w dodatkowym kodzie, z uzys¬ kaniem ujemnego wyniku natychmiast w dodatkowym kodzie.Przepelnienie sumatora bloku arytmetycznego 4 okres¬ la sie w sposób nastepujacy: przepelnienia nie ma, jesli przy wykonywaniu dzialania arytmetycznego jednoczesnie nie wystepowaly lub wystepowaly przeniesienia do wyz¬ szej pozycji sumatora bloku arytmetycznego 4 i z wyzszej pozycji sumatora arytmetycznego 4 do rejestru przenie¬ sienia 34. Jesli natomiast mialo miejsce przeniesienia do wyzszej pozycji sumatora, a z niego przeniesienia nie bylo, lub, gdy nie bylo przeniesienia do wyzszej pozycji su¬ matora, a z wyzszej pozycji przeniesienie bylo, wówczas taka sytuacja okreslana jest jako przepelnienie sumatora.W tym przypadku na wyjsciu sterujacym bloku arytme¬ tycznego 4 ksztaltuje sie (wytwazra sie) sygnal przepel¬ nienia sumatora.W drugim cyklu mnozenia blok 8 sterowania wytwa¬ rza ciag sygnalów pozwalajacych wykonac elementarne operacje zgodnie z zawartoscia rejestru 17. Jednoczesnie z tym od zawartosci licznika 11 odejmowana jest jedynka, a do rejestru 16 przyjmowana jest informacja z nastepnej pary pozycji mnoznika i z wyzszej pozycji poprzedniej pary, przez która dokonuje sie mnozenia w danym mo¬ mencie czasu. W ten sposób wprowadzenie wartosci ko¬ lejnych pozycji mnoznika do rejestru 16 i 17 odbywa sie w ciagu taktu przed mnozeniem przez nie. Pozwala to na zachowanie wartosci wyzszej pozycji pary cyfr mnoznika, bez wprowadzania dodatkowych pozycji do rejestru 1.Proces mnozenia zachodzi dopóty, dopóki zawartosc licznika 11 nie bedzie równa zeru. Sygnal swiadczacy o równosci zeru zawartosci licznika 11 doprowadzany jest do wejscia 31 rejestru 16 i ma sygnal z bloku 8 sterowa¬ nia ustali pozycje 32 rejestru 16 na jedynke, a takze nie pozwoli na przechodzenie przez grupe elemetów lo¬ gicznych 25, 26, 27 I-NIE kolejnych pozycji mnoznika.Dlatego w ostatnim cyklu mnozenia wartosc (stan) re- 10 15 20 25 30 35 40 45 50 55 60108 592 jestru 16 bidzie równa 1000, i blok 8 sterowania przerwie proces mnozenia.Proponowane urzadzenie do mnozenia liczb pozwala na zwiekszenie szybkosci dzialania procesora maszyn liczacych poprzez zmniejszenie czasu niezbednego na wykonanie rozpowszechnionej operacji mnozenia.Przy realizacji wynalazku w maszynie liczacej faktycz¬ nie nie ma potrzeby wprowadzania specyficznej apara¬ tury, poniewaz wszystkie wyzej wymienione b!oki i re¬ jestry urzadzenia wykorzystywane sa równiez i przy wy¬ konywaniu innych operacji systemu rozkazów. PL