Algebra Boole'a i logika cyfrowa

Podobne dokumenty
Algebra Boole'a i logika cyfrowa

Algebra Boole'a i logika cyfrowa

Algebra Boole'a i logika cyfrowa

Algebra Boole'a i logika cyfrowa

i, lub, nie Cegieªki buduj ce wspóªczesne procesory. Piotr Fulma«ski 5 kwietnia 2017

x y x y x y x + y x y

Metodydowodzenia twierdzeń

Architektury systemów komputerowych

Cyfrowe Ukªady Scalone

Ciaªa i wielomiany. 1 Denicja ciaªa. Ciaªa i wielomiany 1

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Arytmetyka liczb binarnych

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

Metody dowodzenia twierdze«

Architektura komputerów Wykład 2

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Lekcja 9 - LICZBY LOSOWE, ZMIENNE

ANALIZA NUMERYCZNA. Grzegorz Szkibiel. Wiosna 2014/15

Lekcja 9 Liczby losowe, zmienne, staªe

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

X WARMI SKO-MAZURSKIE ZAWODY MATEMATYCZNE 18 maja 2012 (szkoªy ponadgimnazjalne)

A = n. 2. Ka»dy podzbiór zbioru sko«czonego jest zbiorem sko«czonym. Dowody tych twierdze«(elementarne, lecz nieco nu» ce) pominiemy.

Wykªad 7. Ekstrema lokalne funkcji dwóch zmiennych.

Architektura komputerów ćwiczenia Bramki logiczne. Układy kombinacyjne. Kanoniczna postać dysjunkcyjna i koniunkcyjna.

Bramki logiczne Podstawowe składniki wszystkich układów logicznych

Lista tematów na kolokwium z wykładu z Techniki Cyfrowej w roku ak. 2013/2014

Ukªady równa«liniowych

Rzut oka na zagadnienia zwi zane z projektowaniem list rozkazów

Macierze i Wyznaczniki

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

1 Bª dy i arytmetyka zmiennopozycyjna

Liczby zmiennoprzecinkowe

JAO - J zyki, Automaty i Obliczenia - Wykªad 1. JAO - J zyki, Automaty i Obliczenia - Wykªad 1

Matematyka wykªad 1. Macierze (1) Andrzej Torój. 17 wrze±nia Wy»sza Szkoªa Zarz dzania i Prawa im. H. Chodkowskiej

Koszt literału (literal cost) jest określony liczbą wystąpień literału w wyrażeniu boolowskim realizowanym przez układ.

Wyra»enia logicznie równowa»ne

Wykład 2. Informatyka Stosowana. 8 października 2018, M. A-B. Informatyka Stosowana Wykład 2 8 października 2018, M. A-B 1 / 41

Listy Inne przykªady Rozwi zywanie problemów. Listy w Mathematice. Marcin Karcz. Wydziaª Matematyki, Fizyki i Informatyki.

Indeksowane rodziny zbiorów

Listy i operacje pytania

Lab. 02: Algorytm Schrage

Relacj binarn okre±lon w zbiorze X nazywamy podzbiór ϱ X X.

PRZYPOMNIENIE Ka»d przestrze«wektorow V, o wymiarze dim V = n < nad ciaªem F mo»na jednoznacznie odwzorowa na przestrze«f n n-ek uporz dkowanych:

LEKCJA. TEMAT: Funktory logiczne.

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

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

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Tranzystor JFET i MOSFET zas. działania

1. Operacje logiczne A B A OR B

Lekcja 8 - ANIMACJA. 1 Polecenia. 2 Typy animacji. 3 Pierwsza animacja - Mrugaj ca twarz

Metody numeryczne i statystyka dla in»ynierów

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

istnienie elementu neutralnego dodawania (zera): 0 K a K a + 0 = a, istnienie elementu neutralnego mno»enia (jedynki): 1 K a K a 1 = a,

Zbiory i odwzorowania

PODSTAWY METROLOGII ĆWICZENIE 4 PRZETWORNIKI AC/CA Międzywydziałowa Szkoła Inżynierii Biomedycznej 2009/2010 SEMESTR 3

Programowanie wspóªbie»ne

Maszyny Turinga i problemy nierozstrzygalne. Maszyny Turinga i problemy nierozstrzygalne

WSTĘP. Budowa bramki NAND TTL, ch-ka przełączania, schemat wewnętrzny, działanie 2

XVII Warmi«sko-Mazurskie Zawody Matematyczne

Statystyka matematyczna - ZSTA LMO

Lekcja 12 - POMOCNICY

Macierze i Wyznaczniki

Matematyka dyskretna dla informatyków

Rozwi zania klasycznych problemów w Rendezvous

O pewnym zadaniu olimpijskim

Wstęp do Techniki Cyfrowej... Algebra Boole a

Minimalizacja form boolowskich

Wst p do informatyki. Systemy liczbowe. Piotr Fulma«ski. 21 pa¹dziernika Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

Maªgorzata Murat. Modele matematyczne.

Logika matematyczna (16) (JiNoI I)

Wybrane poj cia i twierdzenia z wykªadu z teorii liczb

Statyczne badanie przerzutników - ćwiczenie 2

KLASYCZNE ZDANIA KATEGORYCZNE. ogólne - orzekaj co± o wszystkich desygnatach podmiotu szczegóªowe - orzekaj co± o niektórych desygnatach podmiotu

Zadania z kolokwiów ze Wst pu do Informatyki. Semestr II.

Logika binarna. Prawo łączności mówimy, że operator binarny * na zbiorze S jest łączny gdy (x * y) * z = x * (y * z) dla każdego x, y, z S.

Proste modele o zªo»onej dynamice

Algorytmy zwiazane z gramatykami bezkontekstowymi

Informacje pomocnicze

det A := a 11, ( 1) 1+j a 1j det A 1j, a 11 a 12 a 21 a 22 Wn. 1 (Wyznacznik macierzy stopnia 2:). = a 11a 22 a 33 +a 12 a 23 a 31 +a 13 a 21 a 32

Lekcja 5 Programowanie - Nowicjusz

Aproksymacja funkcji metod najmniejszych kwadratów

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Algebra Boole a. Ćwiczenie Sprawdź, czy algebra zbiorów jestrównież algebrą Boole a. Padaj wszystkie elementy takiej realizacji.

Ekstremalnie fajne równania

Wykład nr 1 Techniki Mikroprocesorowe. dr inż. Artur Cichowski

Elementy cyfrowe i układy logiczne

Uczenie Wielowarstwowych Sieci Neuronów o

Opis matematyczny ukªadów liniowych

Podstawy matematyki dla informatyków. Logika formalna. Skªadnia rachunku zda« Skróty i priorytety. Wykªad 10 (Klasyczny rachunek zda«) 15 grudnia 2011

c Marcin Sydow Przepªywy Grafy i Zastosowania Podsumowanie 12: Przepªywy w sieciach

Opis programu do wizualizacji algorytmów z zakresu arytmetyki komputerowej

Semestr letni 2014/15

Materiaªy do Repetytorium z matematyki

Ekonometria. wiczenia 1 Regresja liniowa i MNK. Andrzej Torój. Instytut Ekonometrii Zakªad Ekonometrii Stosowanej

Automatyzacja i robotyzacja procesów produkcyjnych

1 Metody iteracyjne rozwi zywania równania f(x)=0

Liczby zmiennopozycyjne. Kody Hamminga.

Podstawy logiki i teorii zbiorów wiczenia

Dokªadny jak komputer?

Transkrypt:

Algebra Boole'a i logika cyfrowa 3 listopada 2011 Literatura do wykªadu 1. David Patterson, John Hennessy, Computer Organization and Design, 4th Edition, Morgan Kaufmann 2009. 2. David Harris, Sarah Harris, Digital Design and Computer Architecture, Morgan Kaufmann 2007. 3. William Stallings, Organizacja i architektura systemu komputerowego. Projektowanie systemu a jego wydajno±, WNT 2004. 4. Linda Null, Julia Lobur, Struktura organizacyjna i architektura systemów komputerowych, Helion 2004 Wykªad prowadzony b dzie gªównie na podstawie pozycji 1. 1 Aksjomatyczna denicja algebry Boole'a Do opisywania ukªadów cyfrowych b dziemy u»ywali formalizmu nazywanego algebr Boole'a. Algebra Boole'a to struktura matematyczna zªo»ona z uniwersum B i zdeniowanych na nim trzech dziaªa«: dwuargumentowych and i or, oznaczanych przez i + oraz jednoargumentowego not, oznaczanego przez (pozioma kreska nad argumentem), które maj nast puj ce wªasno±ci (nazywane aksjomatami algebry Boole'a): 1 1. ª czno± i przemienno± + i 2. istnieje element neutralny dziaªania +, oznaczany przez 0, czyli x + 0 = x dla dowolnego x B; 3. istnieje element neutralny dziaªania, oznaczany przez 1, czyli x 1 = x dla dowolnego x B; 4. x + x = 1 5. x x = 0 6. prawo podwójnego zaprzeczenia: x = x 7. rozdzielno± wzgl dem +, czyli x (y + z) = x y + x z 8. rozdzielno± + wzgl dem, czyli x + (y z) = (x + y) (x + z) 9. xy = x + y (prawo de Morgana) 1 Podajemy jeden z mo»liwych zestawów aksjomatów (spotykane s te» inne warianty). 1

10. x + y = x y (prawo de Morgana) Z aksjomatów tych wynika szereg dodatkowych wªasno±ci, m.in.: 1. idempotentno± : x + x = x, x x = x 2. 0 x = 0, 1 + x = 1 3. prawo absorpcji: x(x + y) = x, x + xy = x Udowodnijmy pierwsz z nich: x = x + 0 = x + xx = (x + x)(x + x) = (x + x) 1 = x + x. W dowodzie skorzystali±my kolejno z aksjomatów 2, 5, 8, 4, 3. Je±li ustalimy pewnien zbiór A, to okazuje si,»e wszystkie aksjomaty algebry Boole'a s speªnione w strukturze, której elementami s wszystkie podzbiory A, a dziaªaniami operacje przekroju, sumy i dopeªnienia zbioru (do zbioru A). Okazuje si,»e tak»e zbiór B = {0, 1} z dziaªaniami logicznej sumy, iloczynu i negacji speªnia aksjomaty algebry Boole'a 2. Elementy 0, 1 s czasem nazywane faªszem i prawd. Jak si niedªugo przekonamy w takiej strukturze bardzo wygodnie opisuje si dziaªanie cyfrowych ukªadów komputerowych. Jest to dokªadnie ta sama struktura, któr poznali±cie Pa«stwo na przedmiocie Logika dla informatyków. W zagadnieniach zwi zanych z architekturami systemów komputerowych przyj ªo si jednak u»ywa symboli +, i zamiast,,. 2 Wyra»enia i funkcje boolowskie Od teraz b dziemy si porusza w naszym modelu dwuelementowym. U»ywaj c symboli dziaªa«, staªych 0 i 1 oraz zmiennych (zazwyczaj x, y, z,...) mo»emy budowa wyra»enia boolowskie. Ka»de wyra»enie w naturalny sposób deniuje funkcj boolowsk. Funkcj tak mo»emy opisa u»ywaj c tabeli prawdy. Przykªad: x y z F = x + yz 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1 Czasem konstruuj c tablic prawdy dodajemy jeszcze dla wygody kolumny po±rednie (np. yz). Dwa wyra»enia boolowskie nazywamy równowa»nymi je±li opisywane przez nie funkcje boolowskie s identyczne. Oczywi±cie ka»de wyra»enie ma niesko«czenie wiele wyra»e«równowa»- nych, a st d ka»da funkcja mo»e by zapisana na niesko«czenie wiele sposobów. Najlepsze s reprezentacje mo»liwie najprostsze (w jakim± sensie). 2.1 Upraszczanie wyra»e«boolowskich U»ywaj c aksjomatów i praw algebry Boole'a mo»emy próbowa upraszcza wyra»enia boolowskie (proces ten jest odpowiednikiem upraszczenia obwodów cyfrowych komputera). Przykªad: F (x, y, z) = xyz + xyz + xz. 2 W rzeczywisto±ci struktur t mo»na uto»sami ze zbiorem podzbiorów zbioru jednoelementowego z odpowiednimi dziaªaniami. 2

Upraszczamy: Trudniejszy przykªad: xy(z + z) + xz = xy(1) + xz = xy + xz. F (x, y, z) = xy + xz + yz = xy + xz + yz(1) (el. neutralny) = xy + xz + yz(x + x) (uzupeªnienie) = xy + xz + (yz)x + (yz)x (rozdzielno± ) = xy + xz + x(yz) + x(yz) (przemienno± ) = xy + xz + (xy)z + (xz)y (ª czno± ) = xy + (xy)z + xz + (xz)y (przemienno± ) = xy(1 + z) + xz(1 + y) (rozdzielno± ) = xy(1) + xz(1) = xy + xz W podobny sposób mo»emy dowodzi praw algebry Boole'a (czyli uzasadnia,»e dwa ró»ne wyra»enia boolowskie opisuj t sam funkcj ). Upraszczaj c wyra»enia na podstawie praw algebry Boole'a zdajemy si nie tyle na algorytm co na wªasn pomysªowo±. Co wi cej zauwa»my,»e na razie traktujemy poj cie upro±ci w sposób intuicyjny. Upraszczaj c wyra»enia na podstawie praw algebry Boole'a zdajemy si nie tyle na algorytm co na wªasn pomysªowo±. Co wi cej zauwa»my,»e my w zasadzie nie wiemy co to znaczy najprostsza posta wyra»enia... Zdenujmy zatem pewne standardowe proste postacie wyra»enia. Dowodz c,»e ka»da funkcja boolowska mo»e by zapisana jako wyra»enie boolowskie u»yli±my wyra»e«boolowskich o szczególnej budowie: w dysjunkcyjnej postaci normalnej. Wyra»enia w dysjunkcyjnej postaci normalnej to sumy iloczynów: F (x, y, z) = xy + xyz + yz. Ka»d funkcj boolowsk mo»na zapisa w tej postaci. Podobnie mo»emy wprowadzi koniunkcyjn posta normaln posta iloczynu sum. Przykªad wyra»enia w koniunkcyjej postaci normalnej: F (x, y, z) = (x + z)(x + y + z). Zauwa»,»e funkcja wci» mo»e mie wiele reprezentacji w d.p.n. (lub k.p.n). Dla nas najlepsze b d te, które maj najmniejsz mo»liw liczb skªadników (iloczynów), a w±ród reprezentacji z jednakow liczb skªadników (iloczynów) preferowa b dziemy te, które maj mniej literaªów w skªadnikach (iloczynach). Niestety takie okre±lenie wci» nie deniuje jednoznacznej minimalnej postaci. Np. x y + xy + xz = x y + xy + yz, to dwie minimalne postaci tego samego wyra»enia. 3 Bramki logiczne Rysunki w tym rozdziale zostaªy pobrane z ocjalnej strony podr cznika Lindy Null i Julii Lobur. Dobra strona o logice cyfrowej: http://www.play-hookey.com/digital/ (zawiera opisy ukªadów, interaktywne diagramy,...). Bramki logiczne s podstawowymi elementami z jakich budujemy komputery. W zale»no±ci od typu bramka logiczna zbudowana jest z jednego, dwóch lub kilku tranzystorów (nie b dziemy jednak wnikali w szczegóªy budowy bramek). Na pocz tek wprowadzamy bramki odpowiadaj ce operatorom algebry Boole'a bramki AND, OR, NOT. Oprócz bramek dwuwej±ciowych mo-»emy u»ywa ich naturalnych kilkuwej±ciowych wersji. Czasami, oprócz podstawowego wyj±cia bramki dorysowujemy jej drugi wyj±cie, b d ce negacj pierwszego. Czasem, zamisat rysowa bramk negacji, na wej±ciu kolejnej bramki rysujemy puste kóªeczko. U»ywaj c diagramów logicznych mo»emy reprezentowa wyra»enia boolowskie. Przykªad F (x, y, z) = x + yz. 3

Rysunek 1: Symbole podstawowych bramek logicznych Rysunek 2: Trzywej±ciowa bramka OR Rysunek 3: Prosty diagram logiczny Ogólnie bramki odpowiadaj dwu- lub kilkuagrumentowym funkcjom logicznym. Jest zatem 2 4 typów bramek o dwóch wej±ciach. Niektóre z nich sa popularniejsze od innych i maj swoje wªasne symbole i nazwy. Cz sto wykorzystywan bramk jest bramka XOR (rys. 4). Kolejne bramki: NOR (rys. 5) i NAND (rys. 6). Rysunek 4: Bramka XOR i jej tablica prawdy Mówimy,»e zbiór bramek (lub odpowiadaj cych im funkcji logicznych) jest funkcjonalnie peªny je±li mo»na za jego pomoc wyrazi ka»d funkcj logiczn. Pokazali±my ju»,»e zbiór { AND, OR, NOT } jest funkcjonalnie peªny (konstrukcja wyra»enia w dysjunkcyjnej postaci normalnej). Šatwo wyeliminowa z niego bramk AND lub OR (u»ywaj c prawa de Morgana symulujmemy jedn za pomoc drugiej i negacji). Okazuje si,»e bramka NAND (podobnie jak i NOR) stanowi sama w sobie zbiór funkcjonalnie peªny. Dowód: realizujemy AND, OR i NOT przez NAND (rys. 7). Wynika st d,»e w peªni funkcjonalny komputer mo»na by zbudowa 4

Rysunek 5: Bramka NOR: tablica prawdy, symbol, realizacja za pomoc AND i NOT Rysunek 6: Bramka NAND: tablica prawdy, symbol, realizacja za pomoc OR i NOT u»ywaj c tylko bramek NAND. W praktyce u»ywa si bramek ró»nego typu, bo to po prostu pozwala budowa mniej skomplikowane obwody. Rysunek 7: Realizacja AND, NOT i OR przez NAND Wiadomo,»e konstruuj c obwody logiczne warto stara si u»ywa jak najmniejszej liczby bramek. Zwró my jeszcze w tym miejscu uwag na jedn rzecz jak warto bra pod uwag. Popatrzmy na przykªad: F = ((ab + c)d) + e = abd + cd + e. Która posta jest lepsza i dlaczego? Ró»nica polega na liczbie poziomów bramek (narysuj oba obwody). Fizyczna realizacja drugiej wersji b dzie wyliczaªa warto± wyra»enia nieco szybciej ni» pierwszej. Poniewa» ka»de wyra»enie mo»na zapisa w dysjunkcyjnej postaci normalnej, wi c ka»dy obwód mo»na zrealizowa u»ywaj c tylko dwóch poziomów bramek (plus poziom bramek negacji). Nie znaczy to,»e zawsze jest to praktyczne i po» dane (podstawowa niedogodno± : potrzebujemy do tego celu bramek o du»ej liczbie wej±, które same w sobie musz by skomplikowane). My zazwyczaj b dziemy u»ywa bramek o liczbie wej± nie wi kszej ni» 4. 4 Ukªad dodaj cy liczby binarne Spróbujemy si teraz przekona,»e ukªady wchodz ce w skªad komputera naprawd da si zbudow c u»ywaj c tylko prostych bramek logicznych. Na pocz tek zbudujemy ukªad, który dodaje 5

dwie liczby binarne. Ukªady takiego typu s podstawowymi skªadnikami jednostek arytmetycznologicznych procesorów. 4.1 Póªsumator (ang. half-adder) i sumator (and adder) Póªsumator dodaje pojedyncze bity, zwraca te» przeniesienie (ang. carry). Sumator ma trzy wej±cia: dwa bity do zsumowania i poprzednie przeniesienie. (Peªny) sumator zbudujemy z dwóch póªsumatorów i bramki OR. Rysunek 8: Póªsumator Rysunek 9: Sumator 4.2 Sumator kaskadowy Budujemy sumator kaskadowy z n sumatorów (ewentualnie n 1 i jednego póªsumatora). Uwaga: taki ukªad w rzeczywisto±ci nie jest u»ywany w praktyce. Stosowane s pewne ulepszenia (carrylook-ahead, carry-select, carry-save). Urównoleglenie pewnych operacji i zredukowanie mak- 6

symalnej ±cie»ki przeniesienia pozwala uzyska czasy dziaªania kilkukrotnie szybsze od naszego sumatora kaskadowego. Niedªugo omówimy niektóre z takich rozwi zania. Rysunek 10: 16-bitowy sumator kaskadowy 5 Inne proste ukªady kombinacyjne 5.1 Dekoder Ukªad dostaje na n wej±ciach zakodowan (w naturalnym kodzie binarnym) liczb binarn. Ma 2 n wyj±, jego zadaniem jest uaktywnienie (tzn. ustawienie na nim '1') dokªadnie tego o numerze wskazywanym przez liczb na wej±ciu. Rysunek 11: (a) Dekoder 2-do-4 (b) ogólne oznaczenie 5.2 Multiplekser Ukªad na n wej± z danymi (n jest zazwyczaj pot g dwójki) i pewn liczb linii steruj cych (mniej wi cej log 2 n). Wej±cia steruj ce wskazuj, które z wej± z danymi ma by skierowane na wyj±cie. Przykªadowe wykorzystanie: sekwencyjne przesyªanie danych na jedno wyj±cie (stosowane np. do przesyªania rozmów telefonicznych). Z drugiej strony dane s rozdzielane przez demultiplekser. 5.3 Koder, demultiplekser 5.4 Prosta dwubitowa jednostka ALU Na wykªadzie zaprezentowaªem bardziej modularne podej±cie do jej tworzenia (z wykorzystaniem wcze±niej wprowadzonych ukªadów). Ró»ne kombinacje wej± steruj cych f 0, f 1 oznaczaj ró»ne dziaªnia na wej±ciach A, B: 00 to suma, 01 - negacja wej±cia A, 10 - bitowa alternatywa, 11- bitowa koniunkcja. 7

Rysunek 12: (a) Multiplekser o 4 wej±ciach danych (b) ogólne oznaczenie Rysunek 13: Prosta dwubitowa jednostka arytmetyczno-logiczna 6 Reprezentacja uzupeªnienie«do 2. Ukªad dodaj cy i odejmuj cy. B dziemy chcieli teraz zmodykowa nieco ukªad, którego u»ywali±my do dodawania liczb binarnych, tak aby potraª on te» wykonywa odejmowanie. Ustalmy dla uproszczenia,»e u»ywamy arytmetyki 4-bitowej (w praktyce mo»e to by 16,32,64,128...). Potramy zatem reprezentowa liczby z przedziaªu [0, 15]. Oczywi±cie przy dodawaniu liczb mo»e wyst pi bª d przepeªnienia. Pytanie: jak reprezentowa liczby ujemne? Narzucaj ce si rozwi zanie: pierwszy bit oznacza znak liczby. Wady: liczba 0 ma dwie reprezentacje (rozrzutne i niewygodne lub nawet niebezpieczne w obliczeniach), nasz sumator kaskadowy nie potra poprawnie wykona operacji 8

a + ( a). Chcemy mie tak reprezentacj, aby nasz ukªad bez»adnych modykacji poprawnie (z wyj tkiem sytuacji, gdy wyst puje przepeªnienie) dodawaª wszystkie reprezentowane liczby. Reprezentacj tak jest reprezentacja uzupeªnie«do 2. Co si dzieje, gdy do 0001 dodamy 1111? Dostajemy 0000. Zatem je±li 0000 reprezentuje liczb 0, a 0001 liczb 1, to 1111 powinno by reprezentacj -1. Ile trzeba doda do 0101, aby otrzyma 0000? Odpowied¹: 1011. Jak zatem otrzyma liczb przeciwn do zadanej: znajdujemy ostatni jedynk, pozostawiamy j razem z kolejnymi bitami, a bity wcze±niejsze odwracamy. Inaczej: odwracamy wszystkie bity (dopeªnienie do 1) po czym do wyniku dodajemy 1 (dopeªnienie do 2). Peªna tabelka: Zauwa»my: repr. bez znaku ze znakiem 0000 0 0 0001 1 1 0010 2 2 0011 3 3 0100 4 4 0101 5 5 0110 6 6 0111 7 7 1000 8-8 1001 9-7 1010 10-6 1011 11-5 1100 12-4 1101 13-3 1110 14-2 1111 15-1 liczby 0-7 maj w obu reprezentacjach takie same postacie pierwszy bit odró»nia liczby ujemne od nieujemnych Jak zrealizowa odejmowanie? Korzystamy z faktu,»e a b = a + ( b). Czyli je±li ukªad dostaje sygnaª odejmowania wystarczy odwróci bity drugiej liczby (XOR), doda do niej 1 (jednynk mo»emy poda na wej±cie c in pierwszego sumatora) i doda do pierwszej. Zauwa»my,»e nasz ukªad potra poprawnie odejmowa tak»e liczby bez znaku (mniejsz od wi kszej). Zwró uwag,»e tak naprawd aby wykona operacj a b nasz ukªad wykonuje: a + (1111 b) + 1. Szczegóªy zostaªy omówione na wykªadzie. 7 Minimalizacja ukªadów logicznych 7.1 Wst p Notatki do tego wykªadu nie s najpeªniejsze. Je»eli kto± nie byª na wykªadzie, to by mo»e b dzie musiaª poszuka dodatkowych ¹ródeª. Nie powinno by z tym problemu - w sieci mo»na znale¹ mnóstwo informacji na temat omawianych metod. 9

7.2 Kryteria minimalizacji Kryteria, wedªug których minimalizujemy ukªady mog by ró»ne: liczba u»ytych bramek, szybko± dziaªania (czyli liczba poziomów bramek). Zazwyczaj mamy tek»e ogranieczenia na rodzaje u»ywanych bramek. My b dziemy minimalizowa wyra»enia w postaci dysjunkcyjnej, tak aby uzyska najmniejsz mo»liw liczb iloczynów oraz (w drugiej kolejno±ci) minimaln liczb literaªów. Przypominam,»e wynik wci» nie musi by jednoznaczny: wyra»enia xy + x y + x z oraz xy + x y + yz s równowa»ne, a ka»de równowa»ne im wyra»enie w dysjunkcyjnej postaci normalnej musi mie co najmniej trzy iloczyny. W dadatku ka»dy z nich musi zawiera co najmniej po dwie zmienne (lub ich negacje). 7.3 Metody minimalizacji 1. Przeksztaªce«formalnych - czasami trudne, wymaga pomysªowo±ci, nie zawsze mamy gwarancj,»e uzyskali±my optymalny wynik 2. Metody algorytmiczne: metoda siatek Karnaugha, metoda Quinea-McCluskey'a (implikantów prostych). Metody algorytmiczne bazuj oczywi±cie równie» na przeksztaªceniach formalnych. Siatki Karnaugha s wygodne dla funkcji co najwy»ej czterech zmiennych. Dla wi kszej liczby zmiennych ªatwiej u»ywa metody Quine'a-McCluskey'a. Metody algorytmiczne bazuj na dwóch operacjach, których poprawno± wynika z wªasno±ci algebry Boole'a: sklejania (af i + af i = a) i pochªaniania (a + af i = a). Du» rol odgrywa poj cie implikanta prostego. Dla danej funkcji f implikantem jest taki iloczyn zmiennych lub ich negacji (ka»da zmienna mo»e wyst pi tylko raz: albo w postaci zanegowanej, albo w niezanegowanej),»e dla ka»dej kombinacji warto±ci zmiennych, dle której staje si on prawdziwy, równie» caªa funkcja jest prawdziwa. Implikant prosty, to taki,»e po usuni ciu z niego jednego literaªu przestaje on by implikantem. Poszukiwana posta minimalna jest sum pewnych implikantów prostych danej funkcji: w jej skªad wchodz wszystkie implikanty zasadnicze (implikant jest zasadniczy, je±li jako jedyny jest prawdziwy dla pewnej kombinacji wej±ciowej, dla której funkcja zwraca 1) oraz pewien minimalny podzbiór pozostaªych implikantów prostych. 7.4 Sposób reprezentowania funkcji logicznej Na wiczeniach b dziemy u»ywali nast puj cego sposobu reprezentowania funkcji. Zapis f = (0, 1, 4, 5) oznacza funkcj f(x, y, z) = x y z + x yz + xy z + xyz. Ka»da z liczb pojawiaj cych si po znaku oznacza jeden minterm. To jak on wygl da mo»na odczyta przeksztaªcaj c t liczb do systemu dwójkowego (0 = 000 (2), 1 = 001 (2), 4 = 100 (2), 5 = 101 (2) ). Liczba zmiennych jest domy±lna. 7.5 Minimalizacja ukªadów logicznych metod siatek (map) Karnaugha Omówili±my dziªanie siatek dla 3 i 4 zmiennych (tak»e z tzw. kombinacjami nadmiarowymi) Istniej siatki dla 5 i 6 zmiennych, ale s raczej niepraktyczne. 10

7.6 Metoda Quine'a-McCluskey'a Tej metody nie zd»yli±my na wykªadzie omówi. Pozostawiam jednak notatki, poniewa» na li±cie wiczeniowej umie±ciªem (nieobowi zkowe) zadanie polegaj ce na omówieniu metody. Przykªad. f = {2, 3, 5, 6, 7, 10, 11, 15} Zaczynamy od podgrupowania pod wzgl dem liczby niezanegowanych zmiennych implikantów odpowiadaj cych mintermom w niezminimalizowanej dysjunkcyjnej postaci f (lewa tabelka). Nast pnie dla ka»dej pary implikantów ró»ni cych si na dokªadnie jednej pozycji wpisujemy do drugiej tabeli nowy implikant, eliminuj c zmienn, która rozró»nia dane implikanty (na jej pozycji piszemy -). Dla ka»dego implikantu, który udaªo si w ten sposób poª czy z jakim± innym stawiamy w pierwszej tabeli znak v. Zauwa»,»e szukaj c daj cych si poª czy implikantów wystarczy rozwa»a tylko s siednie grupy. Krok powtarzamy, uzyskuj c na podstawie drugiej tabeli tabel trzeci (imlikanty z dwoma kreskami). Usuwamy powtarzaj ce si z niej imlikanty. xyzt (2) 0010 v (3) 0011 v (5) 0101 v (6) 0110 v (10) 1010 v (7) 0111 v (11) 1011 v (15) 1111 v xyzt (2,3) 001- v (2,6) 0-10 v (2,10) -010 v (3,7) 0-11 v (6,7) 011- v (5,7) 01-1 (3,11) -011 v (10,11) 101- v (7,15) -111 v (11,15) 1011 v xyzt (2,3,6,7) 0-1- (2,3,10,11) -01- (2,6,3,7) 0-1- (2,10,3,11) -01- (3,7,11,15) 11 (3,11,7,15) 11 Zauwa»amy,»e w trzeciej tabeli nic ju» si nie da poª czy. Wypisujemy wszystkie implikanty, przy których nie postawili±my znaku v. Zauwa»,»e s to implikanty proste. W naszym przypadku: 01-1 (pokrywaj cy kombinacje 5 i 7), 0-1- (2,3,6,7) -01- (2,3,10,11), 11 (3,7,11,15). Tylko one b d brane pod uwag przy tworzeniu postaci minimalnej. W naszym przypadku wszystkie uzyskane implikanty s zasadnicze, czyli dla ka»dego z nich istenieje kombinacja wej±ciowa pokrywana tylko przez niego (np. dla piewrszego jest to kombinacja 5). Implikanty zasadnicze z denicji musz znale¹ si w wyniku. Uzyskujemy ju» zatem odpowied¹: f = xyt + xz + yz + zt. W trudniejszych przykªadach mo»e si okaza,»e implikanty zasadnicze nie pokrywaj wszystkich wej± (a mo»e nawet w ogóle nie ma implikantów zasadniczych). Wtedy potrzebna jest dodatkowa procedura, której tu nie omówiamy. Tak naprawd, w przypadkach z jakimi spotkamy si na wiczeniach taka procedura nie jest nieb dna - zazwyczaj ªatwo zgadn minimalny zestaw implikantów i uzasadni,»e mniejszego rzeczywi±cie nie ma. 7.7 Uwaga o zªo»ono±ci Problem dla zadanej w postaci tabeli wej± funkcji sprawd¹, czy istnieje wyra»enie w postaci dysjunkcyjnej zawieraj ce najwy»ej k skªadników jest NP-zupeªny (zauwa»,» rozmiarem wej±cia jest tutaj 2 n, gdzie n to liczba zmiennych). Dlatego, dla du»ej liczby wej± stosuje si algorytmy heurystyczne znajduj ce szybko przybli»one rozwi zania. Trudna okazuje si gªównie cz ± druga, czyli procedura znajdowania minimalnego zestawu implikantów prostych. 8 Ukªady sekwencyjne Wszystkie do tej pory poznane ukªady logiczne byªy ukªadami kombinacyjnymi, tzn. warto±ci na wyj±ciach ukªadu zale»aªy tylko i wyª cznie od warto±ci na wej±ciach. Aby skonstruowa 11

pewne elementy komputera b dziemy potrzebowali ukªadów sekwencyjnych. Ukªady takie b d miaªy swój wewn trzny stan. Kolejny stan ukªadu oraz jego wyj±cie zale»y nie tylko od tego co jest na wej±ciach, ale tak»e od poprzedniego stanu. 8.1 Podstawowe ukªady sekwencyjne 8.1.1 Przerzutnik S-R Ka»dy przerzutnik ma dwa mo»liwe stany wewn trzne: 1 i 0. Jest zatem rodzajem pami ci 1- bitowej. Stan ukªadu jest reprezentowany przez wyj±cie Q. Zaznaczamy zazwyczaj tak»e wyj±cie dopeªniaj ce Q. Przerzutnik S-R ma dwa wyj±cia S i R pozwalaj ce ustawia Q odpowiednio na 1 i 0. Rys. 14 przedstawia realizacj przerzutnika S-R za pomoc bramek NOR i jego tabel przej±. Peªna tabela przej± przedstawiona jest poni»ej: S R Q n Q n+1 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0-1 1 1 - Kombinacja wej± 10 ustawia zatem przerzutnik w stanie 1, kombinacja 01 - w stanie 0, 00 jest kombinacj podtrzymuj c stan ukªadu, a 11 - kombinacj zabronion (co si dzieje jak podamy takie wej±cie?) Rysunek 14: Przerzutnik S-R zrealizowany za pomoc bramek NOR Przedstawiony ukªad ma pewn wad : po zmianie wej±cia ukªad od razu dziaªa i zmienia wyj±cie. Zachowanie takie mo»e by nieporz dane w systemie komputerowym - chcieliby±my synchronizowa dziaªanie ró»nych jego elementów. W tym celu u»yjemy sygnaªu zegarowego (na rysunkach oznaczanego zazwyczaj literk C). Sygnaª taki na zmian co pewnien okres czasu (poªow cyklu zegarowego) zmienia si z 0 na 1 i odwrotnie. Zegar o cz stotliwo± i 1GHz zmienia swój stan z 0 na 1 miliard razy na sekund. Pierwsze usprawnienie przerzutnika S-R b dzie polegaªo na podª czeniu go do sygnaªu zegarowego i zezwoleniu na zmian stanu tylko w czasie gdy sygnaª zegarowy jest równy 1. Wystarczy w tym celu poª czy wej±cia S i R z sygnaªem 12

zegarowym bramkami AND (mo»emy synchronizowa wiele przerzutników lub innych ukªadów komputera podª czaj c je do tego samego sygnaªu zegarowego). Uzyskany ukªad nazywany jest przerzutnikiem S-R sterowanym poziomem sygnaªu. Ukªad zachowuje si ju» troch lepiej, ale wci» nie jest idealny: w czasie jednego cyklu zegarowego stan Q mo»e zmieni si wielokrotnie. Spróbujemy wymusi, aby nasz przerzutnik mógª reagowa zmian stanu tylko raz w czasie pojedynczego cyklu zegarowego. Idea polega na u»yciu poª czonych szeregowo dwóch przerzutników S-R sterowanych poziomem sygnaªu i podpi ciu do drugiego negacji sygnaªu zegarowego pierwszego przerzutnika. Odpowiedni rysunek i analiza dziaªania zostaªy przedstawione na wykªadzie. Uzyskany ukªad b dziemy nazywali przerzutnikiem S-R sterowanym zboczem (opadaj cym) sygnaªu. Symbol synchronizowanego przerzutnika S-R sterowanego zboczem przedstawia rysunek 15. W przypadku przerzutnika sterowanego poziomem sygnaªu trójk cik zast powany jest zazwyczaj póªokr giem. Rysunek 15: Symbol synchronizowanego przerzutnika S-R Przerzutniki mog by czasem sterowane sygnaªem innego rodzaju ni» typowy sygnaª zegarowy. Zobaczymy pó¹niej,»e mo»e by to czasem wygodne. 8.1.2 Inne przerzutniki Przerzutnik J-K to nieco usprawniona wersja przerzutnika S-R rozwi zuje problem zabronionego wej±cia 11. Symbol, tabel przej± oraz realizacj za pomoc przerzutnika S-R przedstawia rysuneke 16. Rysunek 16: Przerzutnik J-K Przerzutnik D (przerzutnik danych) to rzeczywisty odpowiednik jednostki pami ci przechowuj cej pojedynczy bit informacji. Ma jedno wej±cie D, które mówi co powinno by zapami tane. Symbol, tabel przej± oraz realizacj za pomoc przerzutnika S-R przedstawia rysunek 17. 13

Rysunek 17: Przerzutnik D 8.2 Przykªady ukªadów sekwencyjnych 8.2.1 Rejestr Rejestry sªu» do przechowywania danych, np. liczb. Na rysunku 18 przedstawiamy rejestr 4- bitowy. W praktyce rejestry s wi ksze (16, 32, 64 bity). Sygnaª zegarowy synchronizuj cy caªy ukªad zapewnia,»e wszystkie bity rejestru b d modykowane w tym samym czasie. Rysunek 18: Rejestr 4-bitowy i jego blokowe oznaczenie Rzeczywiste rejestry maj jeszcze dodatkowe linie zasilania i uziemienia oraz linie zerowania. Pomijamy je w naszych rozwa»aniach. 8.2.2 Zestaw rejestrów Buduj c procesor realizuj cy list rozkazów MIPS u»yjemy m.in. zestawu (pliku, ang. register le) 32 rejestrów 32-bitowych. Na rysunku 19 przestawiamy schemat blokowy takiego zestawu. Ukªad ma nast puj ce wej±cia: dwa wej±cia pi ciobitowe, wskazuj ce numery rejestrów, które maj by odczytane ( Read register number 1, Read register number 2), pi ciobitowe wej±cie, wskazuj ce numer rejestru, który ma by zapisany (Write register), 14

32-bitow dan, która ma by zapisana (Write data), 1-bitowy sygnaª zezwolenia na zapis (Write). Ukªad umieszcza na dwóch 32-bitowych wyj±ciach dane odczytane z rejestów o wskazywanych numerach. Dodatkowo, je±li sygnaª Write jest ustawiony na 1 ukªad zapisuje do rejestru o wskazywanym numerze dane z wej±cia Write data. Na rysunkach 20 i 21 przedstawiamy realizacj odpowiednio cz ±ci odpowiedzialnych za odczyt oraz za zapis. Rysunek 19: Zestaw rejestrów Rysunek 20: Ukªady odpowiedzialne za odczyt rejestrów 15

Rysunek 21: Ukªady odpowiedzialne za zapis rejestru 8.2.3 Licznik binarny Licznik binarny to ukªad, który w takt zegara przyjmuje kolejno ±ci±le okre±lone stany (zazwyczaj sekwencje kolejnych liczb binarnych). Rozwa»my sekwencje: 0000, 0001, 0010, 0011,..., 1111, 0000, 0001,... Najmniej znacz cy bit zmienia si w ka»dym cyklu zegarowym, kolejne bity: dokªadnie wtedy, gdy wszystkie bity na prawo od nich s jedynkami. Najpro±ciej zrealizowa tego typu ukªad z przerzutników J-K. Wersja asynchroniczna. Na wej±cia J i K ka»dego z przerzutników podajemy 1 (na staªe). Na wej±cie zegarowe pierwszego przerzutnika podajemy sygnaª zegarowy; na wej±cie zegarowe ka»dego z pozostaªych przerzutników: wyj±cie Q poprzedniego przerzutnika. Dlaczego taki ukªad jest nazywany asynchronicznym (rozwa» przej±cie ze stanu 1111 do 0000)? Wersja synchroniczna. Na rysunku 22 przedstawiona jest realizacja 4-bitowego licznika synchronicznego. Zmiana stanu przerzutników nast puje w nim równolegle. Licznik zaczyna pracowa po ustawieniu linii count enable na 1. Dodatkowo wyj±cie output carry pozwala wychwyci moment, gdy licznik doszedª do stanu 1111. Na kolejnym wykªadzie poznamy algorytm pozwalaj cy konstruowa liczniki oraz nieco bardziej skomplikowane ukªady sekwencyjne. 9 Projektowanie ukªadów sekwencyjnych W tym rozdziale opowiemy o konstruowaniu ukªadów, których wyj±ciem s po prostu wyj±cia przerzutników a wej±cia nie ma. Problem projektowania zilustrujemy konstruuj c krok po kroku synchroniczny licznik 3-bitowy (przykªad pochodzi z ksi»ki Stallingsa). U»yjemy przerzutników J-K. Wyj±cia przerzutników oznaczymy przez Q A, Q B, Q C (Q C to bit najmniej znacz cy). W poni»szej tabeli przypominamy tablic wªasno±ci przerzutnika J-K: 16

Rysunek 22: Licznik synchroniczny J K Q t+1 0 0 Q t 0 1 0 1 0 1 1 1 Q t Tabel mo»na przepisa do poni»eszej postaci (tzw. tablica wzbudzania): Q t J K Q t+1 0 0 d 0 0 1 d 1 1 d 1 0 1 d 0 1 Posªuguj c si tablic wzbudzania konstruujemy teraz tablic prawdy wi» c wej±cia J,K z wyj±ciami. Tablica przedstawiona jest poni»ej: Q A Q B Q C Ja Ka Jb Kb Jc Kc 0 0 0 0 d 0 d 1 d 0 0 1 0 d 1 d d 1 0 1 0 0 d d 0 1 d 0 1 1 1 d d 1 d 1 1 0 0 d 0 0 d 1 d 1 0 1 d 0 1 d d 1 1 1 0 d 0 d 0 1 d 1 1 1 d 1 d 1 d 1 Rozwa»amy przej±cie z pierwszego do drugiego wiersza: chcemy,»eby warto±ci Q A i Q B pozostaªy równe 0, a warto± Q C ma si zmieni na 1 przy kolejnym impulsie zegarowym. Wpisujemy odpowiednie warto±ci do kolumn Ja, Ka,.... Analogicznie post pujemy z kolejnymi wierszami. Teraz znajdujemy wyra»enia boolowskie dla wyj± Ja, Ka,... (funkcje Q A, Q B, Q C ). Mo-»emy u»y metody siatek Karnaugha. Powinni±my otrzyma : Ja=Q B Q C, Ka=Q B Q C, Jb=Q C, Kb=Q C, Jc=1, Kc=1. 17

10 Automaty Moore'a i Mealy'ego Licznik synchroniczny z poprzedniego rozdziaªu nale»y do klasy ukªadów nazywanych synchronicznymi automatami Moore'a. W ogólnym przypadku kolejny stan przerzutników automatu Moore'a zale»e mo»e nie tylko od poprzedniego stanu, ale tak»e od wej± ukªadu. Dodatkowo wyj±cia ukªadu mog by funkcj stanu przerzutników (a nie po prostu wyj±ciami przerzutników tak jak w naszym liczniku). Jeszcze ogólniejsz klas ukªadów s automaty Mealy'ego: podobnie jak w automatach Moore'a stan zale»y od wej± i poprzedniego stanu, ale wyj±cia s funkcj stanu i wej±. Na wykªadzie przedstawiªem konstrukcj przykªadowego automatu w wersji Mealy'ego (algorytm konstrukcji jest naturalnym roszerzeniem algorytmu konstrukcji licznika z poprzediego rozdziaªu) i omówiªem zasadnicze ró»nice w funkcjonowaniu i budowie automatów Moore'a i Mealy'ego. 11 Mno»enie maszynowe liczb w naturalnym kodzie binarnym 11.1 Mno»enie w cyklu dodaj-przesu«najpierw przyjrzymy si mno»eniu liczb nieujemnych. Na rysunku 23 przedstawiamy schemat ukªadu symuluj cego mno»enie pisemne. Bierzemy pierwsz od prawej cyfr mno»nika Q. Je±li napotkamy jedynk to dodajemy mno»n M do rejestru A. Nast pnie przesuwamy bity ci gu rejestrów CAQ o jeden w prawo. Ko«cowy wynik zawarty jest w rejestrach AQ. Oczywi±cie je±li dane wej±ciowe s liczbami n-bitowymi to wynik daje si zapisa na 2n-bitach. 11.2 Mno»enie: Array multiplier Wykonuj c pewne operacje równolegle mo»emy uzyska caªkowity czas mno»enia liniowy wzgl dem n (algorytm z poprzedniego podrozdziaªu ma oczywi±cie czas proporcjonalny do kwadratu n: mamy n cykli dodaj-przesu«, koszt dodawania jest liniowy). Pomysª jest prosty: u»ywamy jednej bramki AND na pomno»enie ka»dego bitu mno»nika przez ka»dy bit mno»nej (wszystkie bramki dziaªaj równolegle), a nast pnie sumujemy uzyskane iloczyny cz ±ciowe (u»ywaj c odpowiedniej tablicy sumatorów). Oczywi±cie zysk czasowy uzyskujemy kosztem zªo»ono±ci ukªadu: u»yta liczb bramek jest proporcjonalna do kwadratu n. Szczegóªy zostaªy omówione na wykªadzie 11.3 Array multiplier dla reprezentacji uzupeªnie«do 2 Wyja±nili±my na wykªadzie dlaczego poni»szy schemat array multipliera dla reprezentacji uzupeªnie«do 2 dziaªa poprawnie (- oznacza tu negacj ): x x x x x x x x ---------- 1 -x x x x -x x x x -x x x x 1 x -x -x -x -x --------------------- 18

Rysunek 23: Schemat blokowy ukªadu mno» cego oraz przykªad oblicze«: 1011 1101 12 Szybkie dodawanie: carry lookahead (podgl d przeniesienia) Ten fragment zostaª na wykªadzie opowiedziany do± pobie»nie. Nie b dzie obowi zywaª na egzaminie. Na jednym z poprzednich wykªadów przedstawili±my ukªad sumatora kaskadowego. Wad tego ukªadu byª dªugi czas oblicze«: sumator dodaj cy i-te bity liczb wej±ciowych dawaª poprawny wynik dopiero po tym jak otrzymaª poprawne przeniesienie z sumatora i 1. Zakªadaj c,»e pojedynczy sumator podaje poprawne przeniesienie po czasie t, caªe n-bitowe dodawanie trwa mniej wi cej nt. Nieco dokªadniej: zaªó»my,»e ka»dy poziom bramek logicznych powoduje opó¹nienie o 1 jednostk czasu (uproszczenie!). Wtedy ka»dy sumator produkuje wynik w czasie 2 (dwie bramki XOR), a przeniesienie w czasie 3 (XOR, AND, OR). Je»eli przeniesienie zapiszemy jako c i+1 = a i b i + a i c i + b i c i dostajemy przeniesienie w czasie 2. U»yjmy tej zmodykowanej wersji. Jaki jest caªkowity czas oblicze«sumatora, np. 64-bitowego: 2 64 = 128. Jednym z pomysªów na ulepszenie ukªadu sumatora kaskadowego jest wyliczenie przeniesie«dla kolejnych sumatorów szybciej, bez czekania na obliczenia poprzednich. Oznaczmy g i := a i b i (generowanie przeniesienia na i-tym poziomie) oraz p i := a i + b i (propagowanie poprzedniego przeniesienia). Mo»emy zapisa : c i+1 = g i + p i c i. I dalej c i+i = g i + p i (g i 1 + p i 1 c i 1 ). A» do: 19

c i+1 = g i + p i g i 1 + p i p i 1 g i 2 +... + p i p i 1 p i 2... p 1 p 0 c 0. Zatem mo»emy ka»de przeniesienie wyliczy w czasie staªym (trzy bramki opó¹nienia). Caªy 64-bitowy sumator mo»e dziaªa wtedy w czasie 1+2+2=5 (wyliczenie p i oraz g i + wyliczenie c i + dziaªanie pojedynczego sumatora). Oczywisty problem: liczba wej± bramek AND i OR - potrzebujemy bramek o 64 wej±ciach. Niepraktyczne. Pierwsze rozwi zanie: zbudujmy ukªad dziaªaj cy tak jak opisano wy»ej dla 4-bitów i traktujmy go jako blok. Przeniesienia mi dzy blokami podajemy w standardowy sposób. Zauwa»my,»e drugi blok dostaje przeniesienie po czasie 5, trzeci po czasie 9 (p i i g i liczy si wcze±niej), itd. czwarty po 13, itd. Ostatni 16 ma przeniesienie wej±ciowe po czasie 61. Caªkowity czas: 65. Wystarcz w tym przypadku bramki 4-wej±ciowe. Kolejny pomysª: wprowad¹my funkcje propagowania P i G wy»szego poziomu (jeden Blok wy»szego poziomu b dzie si skªadaª z czterech bloków ni»szego): P 0 = p 3 p 2 p 1 p 0 - blok 0 propaguje przeniesienie, je±li ka»dy jego bit propaguje. G 0 = g 3 + p 3 g 2 + p 3 p 2 g 1 + p 3 p 2 p 1 g 0 - blok 0 generuje przeniesienie je±li generuje je który± z jego bitów i propagowane jest ono na wyj±cie bloku. Analogicznie: P 1 = p 7 p 6 p 5 p 4 oraz G 1 = g 7 + p 7 g 6 + p 7 p 6 g 5 + p 7 p 6 p 5 g 4, i tak samo dla i = 2, 3. Teraz: c 4 = G 0 + P 0 c 0, c 8 = G 1 + P 1 c 4, c 12 = G 2 + P 2 c 8. Podobnie jak poprzednio rozwijamy te wzory podstawiaj c odpowiednie wyra»enia pod zmienne c i pojawiaj ce sie po lewych stronych równo±ci. Mo»emy wprowadzi jeszcze jeden poziom i wylicza przeniesienia pomi dzy Blokami drugiego poziomu: c 16, c 32, c 48. Stosuj c t technik dla sumatorów n-bitowych uzyskujemy w efekcie sumator o czasie dzia- ªania rz du log n. 20