]> mj.ucw.cz Git - ads2.git/commitdiff
Hradla: Uklid maker
authorMartin Mares <mj@ucw.cz>
Sat, 19 Nov 2011 21:11:31 +0000 (22:11 +0100)
committerMartin Mares <mj@ucw.cz>
Sat, 19 Nov 2011 21:11:31 +0000 (22:11 +0100)
5-hradla/5-hradla.tex

index 95ba29f98d67074d43299f9c7b3dfad5e7636fdf..65dcd6cf68c32f34857882027d20060d253f193a 100644 (file)
@@ -2,7 +2,11 @@
 
 \prednaska{5}{Hradlové sítì}{}
 
-\def\land{\mathbin{\&}}
+\def\NOT{{\csc not}}
+\def\AND{{\csc and}}
+\def\OR{{\csc or}}
+\def\XOR{{\csc xor}}
+\def\and{\mathbin{\&}}
 
 ®ivot nám pøiná¹í stále vìt¹í problémy, které obvykle vy¾adují stále více
 výpoèetního výkonu. Rychlost poèítaèù sice posledních pár desetiletí stále
@@ -40,8 +44,8 @@ Ta po
 
 \itemize\ibull
 \:nulární: to jsou konstanty ($\hbox{\csc false}=0$, $\hbox{\csc true}=1$),
-\:unární: identita a negace ({\csc not},~$\lnot$),
-\:binární: logický souèin ({\csc and},~$\land$), souèet ({\csc or},~$\lor$), \dots
+\:unární: identita a negace (\NOT,~$\lnot$),
+\:binární: logický souèin (\AND,~$\and$), souèet (\OR,~$\lor$), \dots
 \endlist
 
 Propojením hradel pak vznikne {\I hradlová sí».} Ne¾ vyøkneme formální definici,
@@ -148,7 +152,7 @@ t
 
 Poznamenejme je¹tì, ¾e realistický model (by» s~trochu jinými vlastnostmi)
 by vznikl také tehdy, kdybychom místo arity omezily typy funkcí, øeknìme
-na {\csc and}, {\csc or} a {\csc not}.
+na \AND, \OR{} a \NOT.
 
 \s{Poznámka o~uniformitì:}
 Dodejme, ¾e od~bì¾ných výpoèetním modelùm, jako je tøeba RAM, se hradlové
@@ -167,7 +171,7 @@ s
 
 Abychom si nový výpoèetní model osahali, zkusme nejprve sestrojit obvod,
 který zjistí, zda se mezi jeho~$n$ vstupy vyskytuje alespoò jedna jednièka.
-Jinými slovy vypoèítat $n$-vstupovou funkci {\csc or}.
+Jinými slovy vypoèítat $n$-vstupovou funkci \OR.
 
 \>{\I První øe¹ení:} zapojíme hradla za~sebe (sériovì). Èasová i prostorová
 slo¾itost èiní $\Theta(n)$. Zde ov¹em vùbec nevyu¾íváme toho, ¾e by mohlo poèítat více
@@ -192,7 +196,7 @@ v
 $$
 z_i=x_i \oplus y_i \oplus c_i,
 $$
-kde $z_i$ je $i$-tá èíslice souètu, $\oplus$ znaèí operaci {\csc xor} (souèet modulo~2) a~$c_i$ je {\I pøenos}
+kde $z_i$ je $i$-tá èíslice souètu, $\oplus$ znaèí operaci \XOR{} (souèet modulo~2) a~$c_i$ je {\I pøenos}
 z~$(i-1)$-ního øádu do~$i$-tého. Pøenos pøitom nastane tehdy, pokud se~nám potkají
 dvì jednièky pod~sebou, nebo kdy¾ se~vyskytne alespoò jedna jednièka a~k~tomu
 pøenos z~ni¾¹ího øádu. To je tehdy, kdy¾ mezi tøemi xorovanými èíslicemi jsou alespoò
@@ -220,7 +224,7 @@ hradel. Oproti sekven
 
 Jak sèítání zrychlit? To, co nás pøi sèítání brzdí, jsou evidentnì pøenosy mezi
 jednotlivými øády. Kdybychom je dokázali spoèítat rychleji, máme vyhráno -- souèet
-u¾ získáme jednoduchým {\csc xor}ováním, které zvládneme paralelnì v~èase $\Theta(1)$.
+u¾ získáme jednoduchým \XOR{}ováním, které zvládneme paralelnì v~èase $\Theta(1)$.
 Uva¾ujme tedy nad zpùsobem, jak pøenosy spoèítat paralelnì.
 
 Podívejme se na~libovolný {\I blok} v~na¹em souètu. Tak budeme øíkat èíslùm
@@ -283,8 +287,8 @@ tomu $p = 1$~znamen
 
 V~tomto kódování mù¾eme na¹i tabulku popsat následovnì:
 $$\eqalign{
-   p_B &= p_H \land p_D,\cr
-   q_B &= (\neg{p_H} \land q_H) \lor (p_H \land q_D).
+   p_B &= p_H \and p_D,\cr
+   q_B &= (\neg{p_H} \and q_H) \lor (p_H \and q_D).
 }$$
 
 \h{Paralelní sèítání}
@@ -334,7 +338,7 @@ a v
 \figure{skolni_nasobeni.eps}{©kolní násobení}{2in}
 
 Ve~dvojkové soustavì je to je¹tì jednodu¹¹í: násobení jednou èíslicí je prostý
-{\csc and.} Paralelnì tedy vytvoøíme v¹echna posunutí a spoèítáme v¹echny {\csc and}y.
+\AND. Paralelnì tedy vytvoøíme v¹echna posunutí a spoèítáme v¹echny \AND{}y.
 To v¹e stihneme za 1~takt výpoètu.
 
 Zbývá seèíst $n$~èísel, z~nich¾ ka¾dé má $\Theta(n)$ bitù. Mohli bychom opìt