Szybkie układy mnożące

Podobne dokumenty
Szybkie układy mnożące

Architektura komputerów, Informatyka, sem.iii. Sumatory

Architektura systemów komputerowych. Poziom układów logicznych. Układy mnoŝące i dzielące

Podział sumatorów. Równoległe: Szeregowe (układy sekwencyjne) Z przeniesieniem szeregowym Z przeniesieniem równoległym. Zwykłe Akumulujące

Plan wykładu. Architektura systemów komputerowych. MnoŜenie realizacja sprzętowa (wersja 1) Układy mnoŝące liczby całkowite.

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q

ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia.

Podstawy Informatyki

Arytmetyka stałopozycyjna

Stan wysoki (H) i stan niski (L)

1. Operacje logiczne A B A OR B

Zapis liczb binarnych ze znakiem

Kod U2 Opracował: Andrzej Nowak

MNOŻENIE W SYSTEMACH UZUPEŁNIENIOWYCH PEŁNYCH (algorytm uniwersalny)

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

Technika cyfrowa Układy arytmetyczne

Układy arytmetyczne. Joanna Ledzińska III rok EiT AGH 2011

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI

Wprowadzenie do informatyki - ć wiczenia

Arytmetyka binarna - wykład 6

Technologie Informacyjne

B.B. 2. Sumowanie rozpoczynamy od ostatniej kolumny. Sumujemy cyfry w kolumnie zgodnie z podaną tabelką zapisując wynik pod kreską:

Dodawanie liczb binarnych

...o. 2. ZARYS ORGANIZACJI MASZYNY TYPOWEJ

Pracownia Komputerowa wykład V

DZIESIĘTNY SYSTEM LICZBOWY

Kod znak-moduł. Wartość liczby wynosi. Reprezentacja liczb w kodzie ZM w 8-bitowym formacie:

Kod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych.

Arytmetyka liczb binarnych

SYSTEMY LICZBOWE 275,538 =

Automatyka. Treść wykładów: Multiplekser. Układ kombinacyjny. Demultiplekser. Koder

Informatyka kodowanie liczb. dr hab. inż. Mikołaj Morzy

Architektura systemów komputerowych. Arytmetyka maszyn cyfrowych

Naturalny kod binarny (NKB)

Kodowanie liczb całkowitych w systemach komputerowych

Pozycyjny system liczbowy

Projektowanie Urządzeń Cyfrowych

RODZAJE INFORMACJI. Informacje analogowe. Informacje cyfrowe. U(t) U(t) Umax. Umax. R=(0,Umax) nieskończony zbiór możliwych wartości. Umax.

1.1. Pozycyjne systemy liczbowe

SYSTEMY LICZBOWE. Zapis w systemie dziesiętnym

Wielkość analogowa w danym przedziale swojej zmienności przyjmuje nieskończoną liczbę wartości.

Mikrooperacje. Mikrooperacje arytmetyczne

Systemy zapisu liczb.

Przykładowe pytania DSP 1

Operacje arytmetyczne

Plan wyk ladu. Kodowanie informacji. Systemy addytywne. Definicja i klasyfikacja. Systemy liczbowe. prof. dr hab. inż.

Języki i paradygmaty programowania

Operatory AND, OR, NOT, XOR Opracował: Andrzej Nowak Bibliografia:

Pracownia Komputerowa wyk ad V

Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne

Operacje arytmetyczne w systemie dwójkowym

Pracownia elektryczna i elektroniczna. Elektronika cyfrowa. Ćwiczenie nr 5.

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Systemy liczbowe używane w technice komputerowej

Układy sekwencyjne. Wstęp doinformatyki. Zegary. Układy sekwencyjne. Automaty sekwencyjne. Element pamięciowy. Układy logiczne komputerów

Moduł 2 Zastosowanie systemów liczbowych w informacji cyfrowej

Adam Korzeniewski p Katedra Systemów Multimedialnych

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

architektura komputerów w. 3 Arytmetyka komputerów

Adam Korzeniewski p Katedra Systemów Multimedialnych

Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 1 WSTĘP DO INFORMATYKI

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =

Wykład I: Kodowanie liczb w systemach binarnych. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

przeniesienie pożyczka

Układy kombinacyjne 1

2 Arytmetyka. d r 2 r + d r 1 2 r 1...d d 0 2 0,

LICZBY ZMIENNOPRZECINKOWE

DYDAKTYKA ZAGADNIENIA CYFROWE ZAGADNIENIA CYFROWE

Cyfrowy zapis informacji. 5 grudnia 2013 Wojciech Kucewicz 2

Teoretyczne Podstawy Informatyki

Kodowanie informacji. Kody liczbowe

System liczbowy jest zbiorem reguł określających jednolity sposób zapisu i nazewnictwa liczb.

Wstęp doinformatyki. Systemy liczbowe i arytmetyka komputerów. System dziesiętny. Inne systemy. System dwójkowy

Architektura komputerów

Wprowadzenie do informatyki ćwiczenia

Algorytm mnożenia sekwencyjnego (wariant 1)

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego

Wstęp do informatyki. Pojęcie liczebności. Zapis liczb. Liczenie bez liczebników. Podstawy arytmetyki komputerowej. Cezary Bolek

Modelowanie układów sekwencyjnych w LabView - ćwiczenie 8

Luty 2001 Algorytmy (7) 2000/2001

Automatyzacja procesu tworzenia sprzętowego narzędzia służącego do rozwiązywania zagadnienia logarytmu dyskretnego na krzywych eliptycznych

Metoda znak-moduł (ZM)

Podstawy programowania w języku C i C++

Cyfrowy zapis informacji

SYSTEMY LICZBOWE. SYSTEMY POZYCYJNE: dziesiętny (arabski): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 rzymski: I, II, III, V, C, M

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

2. Arytmetyka procesorów 16-bitowych stałoprzecinkowych

Zestaw 3. - Zapis liczb binarnych ze znakiem 1

L6.1 Systemy liczenia stosowane w informatyce

Jednostki informacji. Bajt moŝna podzielić na dwie połówki 4-bitowe nazywane tetradami (ang. nibbles).

Programowanie Niskopoziomowe

Teoretyczne podstawy informatyki

Wykład 2. Informatyka Stosowana. 9 października Informatyka Stosowana Wykład 2 9 października / 42

- odnajduje część wspólną zbiorów, złączenie zbiorów - wyodrębnia podzbiory;

Wstęp do programowania. Reprezentacje liczb. Liczby naturalne, całkowite i rzeczywiste w układzie binarnym

Arytmetyka komputerów

WSTĘP DO ELEKTRONIKI

Transkrypt:

Szybkie układy mnożące

Operacja mnożenia Operacje dodawania i mnożenia są podstawą algorytmów obliczania wartości innych złożonych funkcji matematycznych oraz przetwarzania sygnałów Implementacje bitowo-szeregowe sekwencyjne dodawanie wieloargumentowe mnożenie przy poszerzonej bazie (high-radix) drzewiaste dodawanie wieloragumentowe drzewa (redularne i nieregularne) metoda "dziel i zwyciężaj" (Divide & Conquer)

Dodawanie bitowo-szeregowe (RCA) Zalety (dla implementacji VLSI) mała liczba wyprowadzeń krótkie połączenia duża szybkość zegara mała powierzchnia niski pobór mocy Dobrze nadaje się do przetwarzania potokowego Szybkość bez zmian: Θ(k) shift X shift Y c Bit-serial RCA FA shift X+Y

Mnożenie bitowo-szeregowo FA Rozwiązanie częściowo-szeregowe (semi-serial) s mnożenie liczb 4bitowych (ogólnie k-bitowych) szybkość: 8-cykli ( 2k cykli Θ(k) ) wady: dedykowany sprzęt FA s Mnożna FA równolegle s FA szeregowo LSB first szeregowo LSB first Mnożnik Iloczyn c c c c

Układy mnożące sekwencyjne Prosta implementacja sprzętowa i programowa Mnożna Mnożnik Składniki Iloczyn cyfra dwójkowa [,1] P i+1 = P i + x i *A*2 i sumy częściowe przesunięcie na i-pozycję A X ------- x *A*2 x 1 *A*2 1 x 2 *A*2 2 x 3 *A*2 3 --------------- P=A*X Składniki dodawania są zawsze iloczynem: A*x i (mnożna * cyfra mnożnika), a przesunięcie zapewnia odpowiednia wagę składnika. Przy bazie 2 (radix-2) składniki mogą mieć tylko dwie wartości: i A. Iloczyn Mnożnik Mnozna Zamiast przesuwania mnożnej, mozna przesuwać rejest iloczynu i stosować węższy sumator

Mnożenie przy poszerzonej bazie Redukcja liczby składników dodawania dla radix-4, liczba skladników jest dwa razy mniejsza cyfry radix-4 zajmują dwa bity i mogą wynosić,1,2,3 składniki dodawania mogą wynosić, A, 2A, 3A obliczanie 3A jest kłopotliwe A X --------- (x 1 x )*A*4 (x 3 x 2 )*A*4 1 --------------- P=A*X cyfra czwórkowa [,3] P i+1 = P i + x i *A*4 i przesunięcie na pozycję odpowiadającą cyfrze czwórkowej (2 bity na cyfrę)

Mnożenie przy poszerzonej bazie Nietypowe wartości składników (np. 3A dla radix-4) można obliczać wstępnie lub stosować sumator Arytmetyka liczb dodatnich (unsigned) Iloczyn Mnożnik przesunięcie 2-bity A 2A 3A x 1 x 2-bity Iloczyn Mnożnik przesunięcie 2-bity 2A A x 1 x

Mnożenie liczb ze znakiem Algorytm Booth'a przy poszerzonej bazie Konwersja mnożnika [,1] na [-1,1], [-2,2], [-8,8],...,11 kodowane jako 1 początek bloku jedynek kodowane jako -1 1 koniec bloku jedynek kodowane jako 1 1 1 1 1 1 1 1 [,1] radix-2-1 1-1 1-1 1-1 [-1,1] radix-2-2 2-1 2-1 -2 [-2,2] radix-4-6 -2-6 [-8,8]radix-16 Konwersja jest szybka (nie ma propagacji) Przy wyższych bazach, cyfry mają znak, ale jest ich mniej, co ułatwi obliczanie składników mnożenia

Mnożenie liczb ze znakiem Algorytm Booth'a dla radix-4 Konwersja dla Radix-4 radix-2 radix-2 radix-4 [,1] [-1,1] [-2, 2] 1 1 1 1 1-1 1 11 1 2 1-1 -2 11-1 1-1 11-1 -1 111 przesunięcie 2-bity x 1 x x -1 A Iloczyn Mnożna Mnożnik 2A dodawanie/ odejmowanie Konwerter

Przyspieszenie sumowania Dodawanie składników wykonuje Θ(k) Starsza część wyniku to dwie liczby (redund.) Sumator CPA potrzebny jest tylko raz Θ(log k) Uwaga na przesuwanie iloczynu!!! Sybkość: Θ(k+log k) Przeniesienia Iloczyn Mnożnik przesuniecie 1 bit Mnożna Suma Przykład dla radix-2 Wynik końcowy (starsza część) CPA

Szybkie układy mnożące sekwencyjne Artymetyka unsigned (częściowe drzewo ) Mnożnik 2A A Artymetyka signed (algortm Booth'a) Mnożnik A 2A 2's cmpl Konwerter CPA Radix-4 Multipliers CPA

Przykład: Radix-16, signed Składniki sumowań,±1a,±2a,...,±8a Konwersja oparta na 5 bitach mnożnika Iloczyn przesuwany o 4 bity (cyfra radix-16) Multiplier A shift 4 2A 4A 2's compl x 3 x 2 x 1 x x -1 8A c 5 Recoding Logic Carries 3 LSB 4bit Sum 4 LSB Product shift-in bits

Przykład: Radix-16, unsigned Składniki sumowań,1a, 2A, 15A Obliczanie składników w drzewie Iloczyn przesuwany o 4 bity (cyfra radix-16) 8A 4A 2A Multiplier x 3 x 2 x 1 x A shift 4 Carries 3 LSB c 4bit Sum 4 LSB Product shift-in bits

Drzewiaste układy mnożące Wszystkie składniki podawane jednocześnie Składniki wielokrotności mnożnej Pełne drzewo redukujące oparte na Końcowa konwersja wyniku na CPA Struktury regularne i nieregularne Szybkość dodawania w drzewie: Θ(log k) Bradzo droga realizacja (rozmiar)

Drzewiaste układy mnożące 2 (k-1) A 4A 2A A Drzewo CPA Mnożnik (k-bitowy) Układ obliczania składników Sumator wieloargumentowy Konwersja do postaci nieredundantnej Starsza część iloczynu Młodsza część iloczynu

Struktura drzew Drzewa nieregularne: np. mnożenie liczb 7-bitowych (dodawanie 7 składników) CPA 13-4 3 2 1 4 2 Drzewa regularne: np. mnożenie liczb 16-bitowych (dodawanie 16 składników) 4 2 4 2 4 2 4 2 4 2 4 2 4 2 CPA

Mnożenie długich liczb Jak pomnożyć długie liczby dysponując krótszymi jednostkami mnożącymi np. 2k * 2k za pomocą mnożarki k*k? k k k 2k k? 4k 2k 2k =

Dziel i zwyciężaj (Divide & Conquer) Rozkład liczb (2k 2 x k) Obliczenia iloczynów częściowych (4 x 2k) Sumowanie iloczynów częściowych ( 4 x 4k) A mnożna X mnożnik A L X H A H X L + A H X H A H A L X H X L A L X L AX

Dziel i zwyciężaj (Divide & Conquer) Najmłodsza część wyniku jest dostępna bezpośrednio Częściowe iloczyny nie nakładają się Końcowe dodawanie wymaga krótszego sumatora A H A L X H X L A L X H A H X H A L X L A H X + L AX

Dziel i zwyciężaj (2k x 2k) A H X H X L A L k k k k k k k k A H X H A L X L A L X H A H X L ¾k CPA AX

Dziel i zwyciężaj - ogólnie Mnożenie dwóch n*k-bitowych liczb za pomocą k-bitowych mnożarek wymaga n*n mnożeń i dodania 2n-1 składników 5k 5k 4k 4k 3k 3k 2k 2k k k

Dziel i zwyciężaj - ogólnie nk-bitowe A nk-bitowe X k k k k k k k k n 2 mnożarek Drzewa 2n-1 2 CPA Iloczyn

Mnożarki perspektywa Podstawowe sekwencyjne radix-2 Product Szybciej Multiple from queue Poszerzona baza i częściowe drzewo (High-radix/Partial Tree) Product High-radix Multiple (few multiples) Small Tree Taniej Mnożarka z pełnym drzewem redukującym All Multiples Full Tree Product