rt tt r s - - PowerPoint PPT Presentation

r t t t r s t t s
SMART_READER_LITE
LIVE PREVIEW

rt tt r s - - PowerPoint PPT Presentation

rt tt r s tts r r r s


slide-1
SLIDE 1

❚❡r♠✐♥❛t✐♦♥ ❉❡t❡❝t✐♦♥ ❢♦r ❉✐✛✉s✐♥❣ ❈♦♠♣✉t❛t✐♦♥s

❙❤❛♥❦❛r ❆♣r✐❧ ✷✻✱ ✷✵✶✽

slide-2
SLIDE 2

❖✈❡r✈✐❡✇

❉✐✛✉s✐♥❣ ❝♦♠♣✉t❛t✐♦♥ ❞✐str✐❜✉t❡❞ ❝♦♠♣✉t❛t✐♦♥ ✇❤❡r❡ ❡❛❝❤ ✉s❡r ✐s ❛❝t✐✈❡ ♦r ✐♥❛❝t✐✈❡ ❛❝t✐✈❡✿ s❡♥❞✴r❝✈ ♠s❣s✱ ❜❡❝♦♠❡ ✐♥❛❝t✐✈❡ ✐♥❛❝t✐✈❡✿ ❜❡❝♦♠❡ ❛❝t✐✈❡ ✉♣♦♥ r❝✈✐♥❣ ❛ ♠s❣ st❛rts ✇✐t❤ ♦♥❡ ❛❝t✐✈❡ ✉s❡r✱ s❛② a0 ❆❧❣✲❧❡✈❡❧ ♣r♦❣r❛♠ ♦❢ ❉✐❥❦str❛✲❙❝❤♦❧t❡♥ ❛❧❣♦r✐t❤♠ ❢♦r t❡r♠✐♥❛t✐♦♥ ❞❡t❡❝t✐♦♥ ♦❢ ❞✐✛✉s✐♥❣ ❝♦♠♣✉t❛t✐♦♥ ❘❡✜♥❡ t♦ ❛✇❛✐t ♣r♦❣r❛♠ t❤❛t ✐♠♣❧❡♠❡♥ts TdChannel ❢♦r ❝❛s❡ ✇❤❡r❡ ♦♥❧② t❤❡ s✐♥❦ ✐s ❛❝t✐✈❡ ✐♥✐t✐❛❧❧②

slide-3
SLIDE 3

❖✉t❧✐♥❡

❛❧❣✲❧❡✈❡❧

❚❡r♠✐♥❛t✐♦♥ ❞❡t❡❝t✐♦♥✿ ❛❧❣♦r✐t❤♠ ❧❡✈❡❧ ❚❡r♠✐♥❛t✐♦♥ ❞❡t❡❝t✐♦♥✿ ❛✇❛✐t✲❜❛s❡❞ ♣r♦❣r❛♠

slide-4
SLIDE 4

❚❡r♠✐♥❛t✐♦♥ ❞❡t❡❝t✐♦♥ ❛❧❣♦r✐t❤♠✿ ♦✈❡r✈✐❡✇

❛❧❣✲❧❡✈❡❧

❉✐str✐❜✉t❡❞ ♣r♦❣r❛♠ TdDiffusingDist st❛rts ❛ ✜❢♦ ❝❤❛♥♥❡❧ ❛♥❞ ❛ s②st❡♠ ❛t ❡❛❝❤ ❛❞❞r j ▼❛✐♥t❛✐♥s ❛ ❞✐str✐❜✉t❡❞ ♦✉t✲tr❡❡ r♦♦t❡❞ ❛t a0 ♦✈❡r ❛❝t✐✈❡ ✉s❡rs ❡①❛❝t❧② ♦♥❡ ❞✐r❡❝t❡❞ ♣❛t❤ ❢r♦♠ a0 t♦ ❡✈❡r② ❛❝t✐✈❡ ✉s❡r ♣❛t❤ ♠❛② ❣♦ ✈✐❛ ♥♦♥✲❧❡❛❢ ✐♥❛❝t✐✈❡ ✉s❡rs ♥♦ ♦t❤❡r ❡❞❣❡s✱ ✐❡✱ ♥♦ ✉♥❞✐r❡❝t❡❞ ❝②❝❧❡ ❈r❡❛t❡s [j,k] ✇❤❡♥ ♥♦♥✲tr❡❡ k r❝✈s ❛ j✲♠s❣ ❉❡❧❡t❡s [j,k] ✇❤❡♥ k ✐s ❛ ❧❡❛❢ ❛♥❞ ✐♥❛❝t✐✈❡ a0 ❞❡t❡❝ts t❡r♠✐♥❛t✐♦♥ ✇❤❡♥ ✐t ✐s ✐♥❛❝t✐✈❡ ❛♥❞ ❛ ❧❡❛❢ ❯s❡r ✜♥❞s ♦✉t ✐t ✐s ❛ ❧❡❛❢ ✈✐❛ ❛❝❦s t♦ ✉s❡r ♠s❣s

slide-5
SLIDE 5

❚❡r♠✐♥❛t✐♦♥ ❞❡t❡❝t✐♦♥ ❛❧❣♦r✐t❤♠

❛❧❣✲❧❡✈❡❧

❙②st❡♠s✱ ❡❛❝❤ ✇✐t❤ ❛ ✉s❡r✱ ❛tt❛❝❤❡❞ t♦ ❛ ✜❢♦ ❝❤❛♥♥❡❧ ❯s❡rs ❡①❝❤❛♥❣❡ ♠s❣s✱ ✇❤✐❝❤ s②st❡♠s r❡❧❛② ♦✈❡r ✜❢♦ ❝❤❛♥♥❡❧ ❙②st❡♠ ♠❡ss❛❣❡s ❞❛t❛ ♠s❣ [ DAT, sender addr, user msg ] ❛❝❦ ♠s❣ [ ACK ] ❙②st❡♠ j ✈❛rs active✿ ✐♥✐t✐❛❧❧② tr✉❡ ❢♦r a0✱ ♦✴✇ ❢❛❧s❡ engager✿ ✐♥✐t✐❛❧❧② a0 ❢♦r a0✱ ♦✴✇ null / / ✏✉♣✲str❡❛♠✑ ♥❡✐❣❜♦r ✐❢ j ✐♥ t❤❡ tr❡❡✱ ♦✴✇ ♥✉❧❧ unAcked✿ ✐♥✐t✐❛❧❧② 0 / / ★ ♦❢ ✉♥❛❝❦❡❞ ♦✉t❣♦✐♥❣ ❞❛t❛ ♠s❣s

slide-6
SLIDE 6

❙②st❡♠ j r✉❧❡s ✕ ✶

❛❧❣✲❧❡✈❡❧

♦♥❧② ✐❢ active = tr✉❡✿ active ← ❢❛❧s❡ ♦♥❧② ✐❢ active s❡♥❞ [DAT,j,umsg] t♦ k unAcked + + r❡❝❡✐✈❡ [DAT,k,dmsg]✿ active ← true ✐❢ engager = null engager ← k ❡❧s❡ s❡♥❞ [ACK] t♦ k

slide-7
SLIDE 7

❙②st❡♠ j r✉❧❡s ✕ ✷

❛❧❣✲❧❡✈❡❧

r❡❝❡✐✈❡ [ACK] unAcked-- ❉✐s❡♥❣❛❣❡ ♦♥❧② ✐❢ ✭♥♦t active ❛♥❞ unAcked = 0 ❛♥❞ engager = null✮ ✐❢ j = a0 s✐❣♥❛❧ t❡r♠✐♥❛t✐♦♥ ❡❧s❡ s❡♥❞ [ACK] t♦ engager engager ← null ❆ss✉♠♣t✐♦♥s r✉❧❡s ❛r❡ ❛t♦♠✐❝ ✇❡❛❦ ❢❛✐r♥❡ss ❢♦r ❞✐s❡♥❣❛❣❡

slide-8
SLIDE 8

❆♥❛❧②s✐s ❛✉①✐❧✐❛r② q✉❛♥t✐t✐❡s

❛❧❣✲❧❡✈❡❧

numDAT(j)✿ # ❞❛t❛ ♠s❣s ✐♥ tr❛♥s✐t ♦✉t❣♦✐♥❣ ❢r♦♠ j numACK(j)✿ # ❛❝❦ ♠s❣s ✐♥ tr❛♥s✐t ✐♥❝♦♠✐♥❣ t♦ j termination✿ forall(j: not j.active and numDAT(j) = 0) eNodes✿ set(j: j.engager = null) / / ❡♥❣❛❣❡❞ ♥♦❞❡s eEdges✿ bag([k.engager, k]: k = a0, k.engager = null) / / ❡♥❣❛❣❡♠❡♥t ❡❞❣❡s eGraph✿ [eNodes, eEdges] / / ❡♥❣❛❣❡♠❡♥t ❞✐❣r❛♣❤

slide-9
SLIDE 9

❆ss❡rt✐♦♥s t♦ ❜❡ ♣r♦✈❡❞

❛❧❣✲❧❡✈❡❧

❙❛❢❡t② A✶ : ■♥✈ (a0.unAcked = 0 and not a0.active) ⇒ termination Pr♦❣r❡ss A✷ : termination ❧❡❛❞s✲t♦ (a0.unAcked = 0 and not a0.active)

slide-10
SLIDE 10

Pr♦♦❢ ♦❢ A✶

❛❧❣✲❧❡✈❡❧

■♥t❡r♠❡❞✐❛t❡ ♣r❡❞✐❝❛t❡s B✶ : eGraph ✐s ❛♥ ♦✉t✲tr❡❡ r♦♦t❡❞ ❛t a0 B✷ : j.unAcked = numDAT(j) + numACK(j) + sum([j,k]: [j,k] in eEdges) B✸ : j.engager = [] ⇒ (not j.active and j.unAcked = 0) ■♥✈ B✶✕B✸✿ B✶✕B✸ s❛t✐s✜❡s ✐♥✈❛r✐❛♥❝❡ r✉❧❡ B✶✕B✸ ✐♠♣❧✐❡s A✶✬s ♣r❡❞✐❝❛t❡ ❤❡♥❝❡ A✶ ❤♦❧❞s

slide-11
SLIDE 11

Pr♦♦❢ ♦❢ A✷

❛❧❣✲❧❡✈❡❧

A✷ : termination ❧❡❛❞s✲t♦ (a0.unAcked = 0 and not a0.active) ❆ss✉♠❡ termination / / ❛❧❧ ✐♥❛❝t✐✈❡✱ ♥♦ ❞❛t❛ ♠s❣s ✐♥ tr❛♥s✐t ❆ss✉♠❡ eEdges ✐s ♥♦t ❡♠♣t② s♦ t❤❡r❡ ✐s ❛ ❧❡❛❢ ♥♦❞❡ j j ❤❛s ♥♦ ♦✉t❣♦✐♥❣ ❞❛t❛ ♠s❣s ♦r ✐♥❝♦♠✐♥❣ ❡❞❣❡s j✬s ✐♥❝♦♠✐♥❣ ❛❝❦s ❛r❡ ❡✈❡♥t✉❛❧❧② r❝✈❞ s♦ j.unAcked ❜❡❝♦♠❡s 0 ❛♥❞ st❛②s s♦ s♦ j s❡♥❞s ❛♥ ❛❝❦ t♦ ✐ts ❡♥❣❛❣❡r ❛♥❞ ❧❡❛✈❡s t❤❡ tr❡❡ ❊✈❡♥t✉❛❧❧② eEdges ✐s ❡♠♣t② ❛♥❞ a0.unAcked ✐s 0

slide-12
SLIDE 12

❖✉t❧✐♥❡

❛✇❛✐t ♣r♦❣r❛♠

❚❡r♠✐♥❛t✐♦♥ ❞❡t❡❝t✐♦♥✿ ❛❧❣♦r✐t❤♠ ❧❡✈❡❧ ❚❡r♠✐♥❛t✐♦♥ ❞❡t❡❝t✐♦♥✿ ❛✇❛✐t✲❜❛s❡❞ ♣r♦❣r❛♠

slide-13
SLIDE 13

❚❡r♠✐♥❛t✐♦♥ ❞❡t❡❝t✐♦♥ ♣r♦❣r❛♠

❛✇❛✐t ♣r♦❣r❛♠

❉✐str✐❜✉t❡❞ ♣r♦❣r❛♠ TdDiffusingDist ( ADDR, a0 ) / / ✐♠♣❧❡♠❡♥ts TdChannel ❢♦r ♦♥❧② ❛✵ ✐♥✐t✐❛❧❧② ❛❝t✐✈❡ {cj} ← st❛rt FifoChannel(ADDR) ❢♦r j ✐♥ ADDR vj ← st❛rt TdDiffusing (ADDR, j, a0, cj) r❡t✉r♥ {vj} TdDiffusing✿ ❛✇❛✐t ♣r♦❣r❛♠✱ r❡✜♥❡s ❛❧❣✲❧❡✈❡❧ s②st❡♠ ✐♥♣✉t ❢♥s✿ tx✱ rx✱ inactive✱ isTerminated ✭♦♥❧② ❛t a0✮ ♦✉t♣✉t ❝❛❧❧s✿ tx✱ rx ♦❢ ❝❤❛♥♥❡❧ ❛❝❝❡ss s②st❡♠

slide-14
SLIDE 14

Pr♦❣r❛♠ TdDiffusing✿ ♦✈❡r✈✐❡✇

❛✇❛✐t ♣r♦❣r❛♠

P❛r❛♠❡t❡rs ADDR✱ ❧♦❝❛❧ ❛❞❞r j✱ s✐♥❦ ❛❞❞r a0✱ ❝❤❛♥♥❡❧ ❛❝❝❡ss s②st❡♠ cj ■♥♣✉t ❢♥s ✭❝❛❧❧❡❞ ❜② ✉s❡r✮ tx(k,msg) rx() inactive() / / ✐♥❞✐❝❛t❡s ✉s❡r ✐♥❛❝t✐✈❡ isTerminated() ✭♦♥❧② ❛t a0✮ / / r❡t✉r♥ ♦♥❧② ✐❢ t❡r♠✐♥❛t✐♦♥ ▲♦❝❛❧ ❢♥ doRx()✱ ❡①❡❝✉t❡❞ ❜② ❧♦❝❛❧ t❤r❡❛❞ r❝✈s ♠s❣ ❢r♦♠ ❝❤❛♥♥❡❧✱ ✉♣❞❛t❡ t❞ st❛t❡ ❛❞❞ ✉s❡r ♠s❣ ✭✐❢ ❛♥②✮ t♦ ❛ ❜✉✛❡r / / ✉s❡r r❝✈s ❢r♦♠ ❜✉✛❡r / / ✐t✬s ♣❛rt ♦❢ ✉s❡r ✇rt t❞ st❛t❡

slide-15
SLIDE 15

Pr♦❣r❛♠ TdDiffusing ✕ ✶

❛✇❛✐t ♣r♦❣r❛♠

▼❛✐♥ active ← (j = a0) engager ← if (j = a0) a0 else null unAcked ← 0 rxq ← [] / / ❜✉✛❡r ❢♦r r❝✈❞ ✉s❡r ♠s❣s startThread ( doRx() ) / / r❝✈s ♠s❣s ❢r♦♠ ❝❤❛♥♥❡❧ ✐♥♣✉t mysid.tx(k, msg) ❛✇❛✐t (true) unAcked + + cj.tx(k, [DAT, j, msg]) r❡t✉r♥

slide-16
SLIDE 16

Pr♦❣r❛♠ TdDiffusing ✕ ✷

❛✇❛✐t ♣r♦❣r❛♠

✐♥♣✉t mysid.rx() ❛✇❛✐t (rxq.size > 0) msg ← rxq[0] rxq.remove() r❡t✉r♥ msg / / r❡t✉r♥ [msg,k] ✐♥♣✉t mysid.inactive() ❛✇❛✐t (true) ✐❢ rxq = [] active ← false ✐❢ ✭❥ = ❛✵ ❛♥❞ ✉♥❆❝❦❡❞ = ✵✮ cj.tx( engager, [ACK] ) / / ❞✐s❡♥❣❛❣❡ engager ← null

slide-17
SLIDE 17

Pr♦❣r❛♠ TdDiffusing ✕ ✸

❛✇❛✐t ♣r♦❣r❛♠

❢✉♥❝t✐♦♥ doRx() / / ❡①❡❝✉t❡❞ ❜② ❛ ❧♦❝❛❧ t❤r❡❛❞ ✇❤✐❧❡ true msg ← cj.rx() / / ✐❛ {msg ✐s [DAT, k, msg]✱ [ACK]} ❛✇❛✐t true ✐❢ msg = [DAT, k, msg] rxq.append(msg) active ← true ✐❢ (engager = null) engager ← k ❡❧s❡ cj.tx(k, [ACK]) ❡❧s❡ ✐❢ msg = [ACK] unAcked -- ✐❢ ✭j = a0 and unAcked = 0 and not active✮ cj.tx( engager, [ACK] ) / / ❞✐s❡♥❣❛❣❡ engager ← null

slide-18
SLIDE 18

Pr♦❣r❛♠ TdDiffusing ✕ ✹

❛✇❛✐t ♣r♦❣r❛♠

✐♥♣✉t mysid.isTerminated() ✐❛ {j = a0} / / ♦♥❧② ❛t a0 ❛✇❛✐t not active and unAcked = 0 r❡t✉r♥ ❛t♦♠✐❝✐t② ❛ss✉♠♣t✐♦♥ {awaits} ♣r♦❣r❡ss ❛ss✉♠♣t✐♦♥ {✇❢❛✐r t❤r❡❛❞s}

slide-19
SLIDE 19

❆♥❛❧②s✐s✿ ♦✈❡r✈✐❡✇

❛✇❛✐t ♣r♦❣r❛♠

❚♦ ♣r♦✈❡✿ TdDiffusingDist ( ADDR, a0 ) ✐♠♣❧❡♠❡♥ts TdChannel ( ADDR, a0, a0 ) ❯s✉❛❧ st❡♣s ❞❡✜♥❡ ♣r♦❣r❛♠ ♦❢ ✐♠♣❧❡♠❡♥t❛t✐♦♥ {vj} ❛♥❞ s❡r✈✐❝❡ ✐♥✈❡rs❡ si ✐❞❡♥t✐❢② ❡✛❡❝t✐✈❡ ❛t♦♠✐❝✐t② ❜r❡❛❦♣♦✐♥ts ♦❜t❛✐♥ ❛ss❡rt✐♦♥s ♣r♦✈❡ ♣r♦❣r❛♠ s❛t✐s✜❡s ❛ss❡rt✐♦♥s / / ❡❛s② ❣✐✈❡♥ ⋆ ❆ss❡rt✐♦♥s ❞❡❛❧ ✇✐t❤ t✇♦ ✐ss✉❡s ✜❢♦ ❝❤❛♥♥❡❧ t❡r♠✐♥❛t✐♦♥ ❞❡t❡❝t✐♦♥

slide-20
SLIDE 20

❆♥❛❧②s✐s✿ ✜❢♦ ❝❤❛♥♥❡❧ ❛ss❡rt✐♦♥s

❛✇❛✐t ♣r♦❣r❛♠

[msg,k] r❡t✉r♥❡❞ ❜② j.rx ♥❡①t ✐♥ ✜❢♦ ♦r❞❡r ❢r♦♠ k r❡❝❛❧❧ ✜❢♦ ❝❤❛♥♥❡❧ r① ❤❛s ✐♥t❡r♥❛❧ ♣❛r❛♠ s❡♥❞❡r✲❛❞❞r k s♦ ❛✉❣♠❡♥t j.rx r❡t✉r♥ ✭❛♥❞ j.rxq ❡♥tr✐❡s✮ ✇✐t❤ k Pr♦♦❢✿ si.rxhk,j ◦ (rxq k✲❡♥tr✐❡s) = (chan.rxhk,j ❞❛t❛ ❡♥tr✐❡s) msg ✐♥ tr❛♥s✐t ✐s ❡✈❡♥t✉❛❧❧② r❝✈❞ ✐❢ j.rx ♦♥❣♦✐♥❣ Pr♦♦❢✿ msg ❡♥t❡rs j.rxq ✭❝❤❛♥♥❡❧ ♣r♦❣✮✱ t❤❡♥ ✉s❡r ✭❛✇❛✐t ❢❛✐r♥❡ss✮ ♦♥❣♦✐♥❣ j.tx ❡✈❡♥t✉❛❧❧② r❡t✉r♥s Pr♦♦❢✿ j.tx ✐s ♥♦♥✲❜❧♦❝❦✐♥❣✱ ❛✇❛✐t ❢❛✐r♥❡ss

slide-21
SLIDE 21

❆♥❛❧②s✐s✿ t❡r♠✐♥❛t✐♦♥ ❞❡t❡❝t✐♦♥ ❛ss❡rt✐♦♥s

❛✇❛✐t ♣r♦❣r❛♠

a0.unAcked = 0 and not a0.active ✐♠♣❧✐❡s termination termination ❧❡❛❞s✲t♦ a0.unAcked = 0 and not a0.active Pr♦♦❢✿ ❋♦❧❧♦✇ ❢r♦♠ ✭s✐♠✐❧❛r✮ ❛❧❣✲❧❡✈❡❧ A✶✕A✷ s✉❜❥❡❝t t♦ j.active ⇔ (si.active[j] ♦r j.rxq = [])