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