03.09.2013 Aufrufe

Komplexitaet-WS-2010.. - Parallele Systeme

Komplexitaet-WS-2010.. - Parallele Systeme

Komplexitaet-WS-2010.. - Parallele Systeme

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

128 Vorlesungsskript von E. Best / Stand: 17. Januar 2011<br />

1) (ui,vi) = (0,0) bedeutet xi +yi = 0. Unabhängig von anderen Inputs ist zi = 0. Überträge, die zur<br />

Stelle i kommen, werden abgefangen. Diese Stellen heißen E ( ” eliminieren“).<br />

2) (ui,vi) = (0,1) bedeutet xi +yi = 1. In dieser Situation ist zi = zi−1. Ein Übertrag aus der vorigen<br />

Stelle wird weitergeleitet. Derartige Stellen heißen P ( ” propagieren“).<br />

3) (ui,vi) = (1,0) bedeutet xi+yi = 0 und ein neuer Übertrag wird erzeugt: zi = 1. Diese Stellen heißen<br />

G ( ” generieren“).<br />

4) (ui,vi) = (1,1) kommt nicht vor.<br />

An Stelle i entsteht ein Übertrag genau dann, wenn ein Übertrag an einer Position j ≤ i erzeugt wird<br />

(uj = 1) und dann bis zur Position i weitergeleitet wird (vj+1 = ... = vi = 1):<br />

zi = <br />

0≤j≤i<br />

(uj ∧vj+1 ∧...∧vi)<br />

Alle die zi können dann parallel aus u, v berechnet werden.<br />

Die Formeln uj ∧vj+1 ∧... ∧vi lassen sich mit balancierten Bäumen aus ∧-Bausteinen in Größe O(n)<br />

und Tiefe O(log(n)) berechnen. Es gibt O(n) logische Summanden, für jeden genügen O(n) Bausteine<br />

(insgesamt also O(n 2 ) für ein einziges zi), die Tiefe bleibt O(2·log(n)) = O(log(n)). Da es O(n) zi’s gibt,<br />

folgt:<br />

Carry-Look-Ahead-Addierer haben Größe O(n 3 ) und Tiefe O(log(n)).<br />

5.2.5 Produkt zweier Boolescher Vektoren<br />

Gegeben: x = x1,...,xn und y = y1,...,yn<br />

Gesucht:<br />

dot: {0,1} 2n → {0,1} gemäß dot(x,y) =<br />

n<br />

(xi ∧yi).<br />

i=1<br />

Dies kann durch einen Schaltkreis (siehe Abbildung 5.6) geleistet werden, der eine ” einfachere Version“<br />

desjenigen für die zi im vorigen Beispiel ist.<br />

5.2.6 Produkt zweier quadratischer Boolescher Matrizen<br />

A = [aij] B = [bij] 1 ≤ i,j ≤ n<br />

Ai = (ai1,...,ain), Bj = (b1j,...,bnj) 1 ≤ i,j ≤ n<br />

A·B = C mit cij = dot(Ai,Bj) 1 ≤ i,j ≤ n.<br />

Alle cij können parallel zueinander berechnet werden. Benutze<br />

DOT<br />

!

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!