Logika cyfrowa Literatura do wykªadu 1 Logika cyfrowa
Transkrypt
Logika cyfrowa Literatura do wykªadu 1 Logika cyfrowa
Logika cyfrowa 26 lutego 2015 Literatura do wykªadu Computer Organization and Design, 5th Edition, Morgan 4th Edition, 2009) 1. David Patterson, John Hennessy, Kaufmann 2013 (lub 2. David Harris, Sarah Harris, Digital Design and Computer Architecture , Morgan Kaufmann 2012. Organizacja i architektura systemu komputerowego. Projektowanie systemu a jego wydajno±¢, WNT 2009. 3. William Stallings, 4. Linda Null, Julia Lobur, Struktura organizacyjna i architektura systemów komputerowych, Helion 2004 Polecam przede wszystkim pozycj¦ [1], na podstawie której (gªównie) prowadzone b¦d¡ wykªady 6-15. Dobrze dopasowana do wykªadu jest równie» pozycja [2]. 1 Logika cyfrowa Do opisywania ukªadów cyfrowych b¦dziemy u»ywali znanej Pa«stwu z przedmiotu informatyków logiki boolowskiej. dwuargumentowe Mamy dwie staªe and or i , oznaczane przez ·i+ 0, 1 Logika dla i zdeniowane na nich trzy dziaªania: oraz jednoargumentowe not , oznaczane przez (pozioma kreska nad argumentem). Dziaªanie te to po prostu operacje koniunkcji, alternatywy 1 Przypomnijmy pewne ich wªasno±ci: oraz negacji. 1. ª¡czno±¢ i przemienno±¢ +i· 2. 0 jest elementem neutralnym +, 3. 1 jest elementem neutralnym ·, czyli 4. x+x=1 5. x·x=0 6. prawo podwójnego zaprzeczenia: 7. rozdzielno±¢ · wzgl¦dem +, czyli 8. rozdzielno±¢ + wzgl¦dem ·, czyli 9. 1W xy = x + y czyli x+0=x x·1=x dla dowolnego dla dowolnego x ∈ B; x ∈ B; x=x x · (y + z) = x · y + x · z x + (y · z) = (x + y) · (x + z) (prawo de Morgana) zagadnieniach zwi¡zanych z architekturami systemów komputerowych przyj¦ªo si¦ u»ywa¢ symboli zamiast ∨, ∧, ¬. 1 +, · i 10. x+y =x·y (prawo de Morgana) Wªasno±ci te mo»na ªatwo wykaza¢, u»ywaj¡c tabelek dziaªa« naszych trzech operatorów. Kolejne prawa zachodz¡ce w naszej strukturze to: 11. idempotentno±¢: 12. x + x = x, x · x = x 0 · x = 0, 1 + x = 1 13. prawo absorpcji: x(x + y) = x, x + xy = x Ponownie, uzasadnienie ich przy u»yciu tabelek operatorów jest proste. Alternatywnie, mo»na pokaza¢, »e s¡ one konsekwencjami wªasno±ci wcze±niejszych. Np. prawo 11 wynika z wªasno±ci 2, 5, 8, 4, 3 2 w nast¦puj¡cy sposób: x = x + 0 = x + xx = (x + x)(x + x) = (x + x) · 1 = x + x. Wyra»enia i funkcje boolowskie U»ywaj¡c symboli dziaªa«, staªych 0 i 1 oraz zmiennych (zazwyczaj wyra»enia boolowskie x, y, z, . . .) mo»emy budowa¢ . Ka»de wyra»enie w naturalny sposób deniuje 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 funkcj¦ boolowsk¡ . Czasem konstruuj¡c tablic¦ prawdy wyra»enia dodajemy jeszcze dla wygody kolumny po±rednie (np. yz ). Dwa wyra»enia boolowskie nazywamy równowa»nymi je±li opisywane przez nie funkcje bo- olowskie 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 podanych wªasno±ci 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. Upraszczamy: xy(z + z) + xz = xy(1) + xz = xy + xz. Trudniejszy przykªad: 2 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¢ nowych praw (czyli uzasadnia¢, »e dwa ró»ne wyra»enia boolowskie opisuj¡ t¡ sam¡ funkcj¦). Upraszczaj¡c wyra»enia na podstawie podanych równowa»no±ci 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 postaci dysjunkcyjnej posta¢ koniunkcyjn¡ u»yli±my wyra»e« boolowskich o szczególnej budowie: w postaci dysjunkcyjnej sumy iloczynów literaªów: . Wyra»enia w xy + xyz + yz . zapisa¢ w tej postaci. Podobnie mo»emy wprowadzi¢ Ka»d¡ funkcj¦ boolowsk¡ mo»na posta¢ iloczynu sum. Przykªad wyra»enia w koniunkcyjej postaci normalnej: (x + z)(x + y + z). Zauwa», »e funkcja wci¡» mo»e mie¢ wiele reprezentacji w postaci dysjunckyjnej (lub koniunkjnej). 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 [4]. 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 naszym podstawowym operatorom 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 drugie wyj±cie, b¦d¡ce negacj¡ pierwszego. Czasem, zamisat rysowa¢ bramk¦ negacji, na wej±ciu kolejnej bramki rysujemy puste kóªeczko. Rysunek 1: Symbole podstawowych bramek logicznych 3 Rysunek 2: Trzywej±ciowa bramka OR U»ywaj¡c x + yz : diagramów logicznych mo»emy reprezentowa¢ wyra»enia boolowskie. Przykªad Rysunek 3: Prosty diagram logiczny Ogólnie bramki odpowiadaj¡ dwu- lub kilkuagrumentowym funkcjom logicznym. Jest zatem 24 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 bramki: NOR (rys. 5) i NAND (rys. 6). XOR (rys. 4). Kolejne Rysunek 4: Bramka XOR i jej tablica prawdy Rysunek 5: Bramka NOR: tablica prawdy, symbol, realizacja za pomoc¡ AND i NOT Mówimy, »e zbiór bramek (lub odpowiadaj¡cych im funkcji logicznych) jest peªny je±li mo»na za jego pomoc¡ wyrazi¢ ka»d¡ funkcj¦ logiczn¡. 4 funkcjonalnie Pokazali±my ju», »e zbiór Rysunek 6: Bramka NAND: tablica prawdy, symbol, realizacja za pomoc¡ OR i NOT { 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¢ 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 dwie liczby binarne. Ukªady takiego typu s¡ podstawowymi skªadnikami jednostek arytmetycznologicznych procesorów. 5 4.1 Póªsumator (ang. half-adder) i sumator (and adder) Póªsumator dodaje pojedyncze bity, zwraca te» przeniesienie (ang. wej±cia: dwa bity do zsumowania i poprzednie przeniesienie. carry). Sumator ma trzy (Peªny) sumator zbudujemy z dwóch póªsumatorów i bramki OR. Rysunek 8: Póªsumator Rysunek 9: Sumator 4.2 Wielobitowy 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- 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. 6 Rysunek 10: 16-bitowy sumator kaskadowy 5 Inne proste ukªady 5.1 Dekoder Ukªad dostaje na 2n n wej±ciach zakodowan¡ (w naturalnym kodzie binarnym) liczb¦ binarn¡. Ma wyj±¢, jego zadaniem jest uaktywnienie (tzn. ustawienie na nim '1') dokªadnie tego o nu- merze wskazywanym przez liczb¦ na wej±ciu. Przykªadowa realizacja wersji z dwoma wej±ciami przedstawiona jest na rysunku 11. 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 na wyj±cie. log2 n). Wej±cia steruj¡ce wskazuj¡, które z wej±¢ z danymi ma by¢ skierowane Przykªadowe wykorzystanie: sekwencyjne przesyªanie danych na jedno wyj±cie (stosowane np. do przesyªania rozmów telefonicznych) z drugiej strony dane mog¦ by¢ odbierane i rozdzielane ponownie na n linii przez demultiplekser. Przykªadowa realizacja multipleksera z czterema wej±ciami danych przedstawiona jest na rysunku 12. Na wykªadzie przedstawiªem nieco inn¡ realizacj¦ z u»yciem gotowego dekodera. 5.3 Koder, demultiplekser Pojawi¡ si¦ na ¢wiczeniach. 7 Rysunek 12: (a) Multiplekser o 4 wej±ciach danych (b) ogólne oznaczenie 8